The Flex SDK is now open source. To whet your appetite and get your brain going on some of the possibilities that this opens up, here are a few tidbits of information:
The trunk directory is where active development is taking place on Flex 4 (codename Gumbo). Start there if you want to track Flex 4, contribute patches, and so on.
The 3.0.x directory is where Flex 3 is kept. This is a stable branch that will only be changed if there are patches to Flex 3. Start there if you want to play with or modify the Flex 3 source.
In the rest of the bullet points below, any directory I mention exists as a subdirectory of both the trunk and the 3.0.x branch.
The entire source of the compiler is in there. This includes two main parts: mxmlc (in the modules/compiler directory) and asc (in the modules/asc directory). asc is the lower-level component that parses and compiles ActionScript source code; mxmlc is the higher-level component that parses MXML files, calls asc to have it compile ActionScript, hooks up binding, invokes the linker, and so on.
One of the coolest parts is swfdump. As Gordon explained, this gives you the ability to see exactly what is inside a swf. This is a great learning tool for understanding what really goes on in the compiler and in your own code. Try “swfdump -abc myapp.swf > myapp.txt”, and then start exploring.
The entire source for the command-line debugger, fdb, is all there, in modules/debugger. For the starting point of the command-line debugger, see DebugCLI.main(). For the entry point to the generic debugger API – upon which both fdb and the Flex Builder debugger are built – see Bootstrap.sessionManager().
In the “development” directory, you will find Eclipse projects for most of
the projects. There is no project there for asc, but there are projects for
mxmlc, fdb, swfutils (which has the source of swfdump), and so on. The
projects are divided into two groups: The “java” directory contains Eclipse
JDT projects for the Java-based parts of the Flex SDK, such as the compiler
and the debugger, and the “flex” directory has Flex Builder projects for
the Flex-based parts of the SDK, such as the Flex framework. To use these,
follow two steps: (1) in the preferences, in both General > Workspace >
Linked Resources and Java > Build Path > Classpath Variables, set
FLEX_SDK
to point to the root directory of your SDK; (2) do File >
Import, Existing Projects into Workspace.
Flex Builder 3 supports not only Flex 2 and Flex 3, but, in fact, it supports any custom Flex build you care to make. Drop in your own hacked compiler. Drop in your own hacked framework.swc. Drop in a patched flex-config.xml, and watch projects that use that SDK automatically pick up the changed library path. To make Flex Builder “see” your SDK, just go to the Eclipse Preferences, and then Flex > Installed Flex SDKs, then click “Add…” and point to your SDK’s root directory.
Don’t forget that the entire Flex bug database is out there for you to see – search for info on existing bugs, vote for bugs you want to see fixed, log bugs, suggest enhancements.