...
Adobe donated the source code to the Falcon compiler as revision 1383121 on September 10, 2012. It currently lives at incubator/flex/falcon/trunk
. A development branch at incubator/{flex/falcon/branches/develop}} will follow after the build scripts have been tested and debugged.
...
- It should compile faster for both full and incremental compiles, especially for multi-project workspaces.
- It should require less memory, especially for multi-project workspaces.
- It should be useful as a code-intelligence engine and incremental compiler for an integrated development environment, and not just as a command-line compiler.
- It should have a design that is easy to understand and to evolve.
- It should generate better bytecode for improved runtime performance.
Source Code
The Falcon trunk 'develop' branch is now available in Apache's Subversion GIT repository at https://svngit-wip-us.apache.org/repos/asf/incubator/flex/falcon/trunk
. You can download it with any Subversion GIT client.-falcon.git
If you prefer to browse it with ViewVC, use http://svn.apache.org/viewvc/incubator/flex/falcon/trunk
.
Binary Distributions
No binary distributions are available. Perhaps someone will volunteer to set up automated builds and a build download page?
...
Target | Purpose |
---|---|
javadoc | Builds Falcon's Javadoc at |
eclipse | Prepares or updates the project for use in Eclipse. This takes care of generating the Java code for the lexers, parsers, and BURMs. |
main (default) | Produces an SDK at |
clean | Cleans the build output but leaves any downloaded JARs. |
wipe | Wipes out everything that didn't come from SubversionGIT. |
The main
, eclipse
, or javadoc
target will do a one-time download of five third party JARs:
...
If you do ant -q main
(where the -q
switch means "quiet" and turns off a lot of noisy output), the output the first time should look like this:
No Format |
---|
$ ant -q [echo] JFLEX_JAR is d:/jflex-1.4.3/jflex/lib/JFlex.jar [echo] Obtaining lib/antlr.jar [echo] Obtaining lib/commons-cli.jar [echo] Obtaining lib/commons-io.jar [echo] Obtaining lib/guava.jar [echo] Obtaining lib/jburg.jar [echo] Obtaining lib/lzma.jar [echo] Building lib/lzma.jar [echo] Deleting 'generated' directory Generating RawASTokenizer [echo] Generating RawASTokenizer and RawASDocTokenizer RawASDocTokenizer [echo] Generating RawMXMLTokenizer [echo] Generating ASParser and ASTokenTypes [antlr] ANTLR Parser Generator Version 2.7.7 (20060906) 1989-20057 (20060906) 1989-2005 [echo] Generating MetadataParser and MetadataTokenTypes [antlr] ANTLR Parser Generator Version 2.7.7 (20060906) 1989-2005 [echo] Generating CmcEmitterCSSLexer and CSSParser [echo] Generating CSSLexer, CSSParser, and CSSTree [echo] Generating CSSEmitterCmcEmitter [echo] Generating RawMXMLTokenizerCSSEmitter [echo] Compiling Java code [echo] Creating generated/dist/sdk/lib/compiler.jar [echo] Creating generated/dist/sdk/lib/falcon-asc.jar [echo] Creating generated/dist/sdk/lib/falcon-mxmlc.jar [echo] Creating generated/dist/sdk/lib/falcon-compc.jar [echo] Creating generated/dist/sdk/lib/falcon-optimizer.jar [echo] Creating generated/dist/sdk/lib/falcon-swfdump.jar [echo] Creating lib/aet.jar [echo] Creating generated/dist/sdk/lib/flexTasks.jar [echo] Copying Apache SDK [echo] Building support.swc [echo] compiler main completed on 09/14/2012 1011:1332:3937 AMPM BUILD SUCCESSFUL Total time: 1 minute 16 seconds |
...
- Download the necessary third-party JAR files.
- Generate Java-based lexer classes from JFlex
.lex
files, Java-based parser classes from ANTLR.g
files, and Java-based BURM classes from JBurg.jbg
files. - Compile the Java code (both the code that's in Subversion GIT and the lexers/parsers/BURMs that are generated by the previous step).
- Create the JAR files that are the Falcon deliverables.
- Create a SWC file that needs to be used when compiling Flex with Falcon (because Falcon generates different code for CSS than the old compiler).
...
Q: Where is the specification for ActionScript ByteCode (ABC)?
A: http://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf
Q: What is a semantic checker?
...