Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

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/trunkImage Removed-falcon.git. You can download it with any Subversion GIT client.

If you prefer to browse it with ViewVC, use http://svn.apache.org/viewvc/incubator/flex/falcon/trunkImage Removed.

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 generated/javadoc.

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 generated/dist/sdk containing both Falcon and the legacy compiler.

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.pdfImage Removed

Q: What is a semantic checker?

...