Phoenix C2.EXE
C2.EXE is a compiler backend that is compatible with the CL.EXE. C2 has three major components:
- Driver
- Phoenix core
- Target.
Unmanaged builds statically link these three components into one executable. Managed builds create these three components as separate Microsoft Intermediate Language (MSIL) assemblies. C2 compiler accepts a set of command-line flags as input. The flags specify compiler options and indicate the location of Microsoft Compiler Intermediate Language (CIL; not to be confused with the ECMA CIL which we refer to as MSIL) files produced by the compiler front-end. The primary output of the C2 compiler is a Common Object File Format (COFF) object file.
C2 compiler can run standalone. To do this you must first run the C2 compiler as part of an overall compilation to get the necessary flags from the driver, and to get the front-end to create the appropriate Compiler Intermediate Language (CIL) files. You can use the -Bz switch to show the compilation steps without executing them.
I am exciting to have the opportunity talking about this at TechEd SEA Kuala Lumpur.