flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Smith <gosm...@adobe.com>
Subject RE: ASC 2.0 and Falcon
Date Thu, 18 Oct 2012 21:55:27 GMT
My top priority is completing Falcon's MXML functionality.

I plan to do this in a test-driven way, by writing unit tests at the level of the lexer, parser,
and code generator and making them pass. The compiler tests for MXML that we had at Adobe
weren't structured well, so rather than spend time donating them I prefer to write an MXML
suite from scratch.

I'm happy to take suggestions from Omar how to write better JUnit tests, since he didn't think
much of the ones I wrote for the MXML lexer.

Soon I'll start on a set of JUnit tests for parsing each kind of MXML tag. After I write a
few of these, I hope that people will help me to complete the set and fix the bugs we find.
Then I'll move on to code generation of specific MXML features, and then to compiling entire
SWCs and mustella tests.

Given that Falcon's ActionScript functionality is much closer to shipping-quality than its
MXML functionality is, I don't consider the ActionScript tests to be as high a priority. Other
than porting over key bug fixes from ASC 2.0, I don't think we should be changing the ActionScript
compiler until the MXML compiler is more complete, and therefore we can live without ActionScript
tests. I'm hoping someone else at Adobe takes on the task of donating the ActionScript unit
tests. I think there are more than 25,000 files, so this will be a lengthy task.

In the absence of ActionScript unit tests, large functional tests like compiling framework.swc
can substitute for them and verify that ActionScript is getting compiled correctly. I have
asked for help with setting up these tests and not gotten any takers. The first step is to
convert the <compc> tasks in the Ant scripts to use config files so that a JUnit tests
can use the same config file. Anybody who has ever written a config file can do this.

Working on the MXML compiler does not require a background in compiler construction. It is
pretty straightforward stuff. For example, the parser code turns a DOM-like representation
of MXML into a tree-like representation with nodes like MXMLInstanceNode and MXMLPropertyNode.
You could understand this process after a few hours. Similarly, anyone could work in code
generation after a few days, because most MXML tags produce straightforward byte code.

I encourage developers in the Apache Flex community to step up and help with the completion
of Falcon. If no one helps me out, Adobe may conclude that further investment of my time is
not productive.

- Gordon

View raw message