I would not suggest trying a current checkout until the aftermath of tonight's patch is fixed. Most tests are passing but a select few are broken. (Leo, hopefully you can quickly fix the pbc stuff that is causing the others to fail)
The major change is that IMCC will now parse and collect all compilation units before compiling anything.
Until now, IMCC would compile each unit (sub, etc.) as it came to it and it used a lot of global variables. This was very hackish and was not good enough to handle the full language that we need to implement. Now, we collect all the units and each unit (struct IMC_Unit) has its own state (register graph, live graph, etc.).
At the end of the parse, imcc then iterates through the list of imc_units and compiles and emits them.
The next step is to actually reorder the units before compiling so all metadata units and init sections are done first, but that's easy.
There will be major patches to follow, so I recommend everyone stick with 0.0.13 unless you are a developer and want to help. :)
-Melvin