Hi,

I wanted to give a small update on what has been done on the CLI branch (gcc svn repository branches/st) before the summit.
I will not be able to be there,
have fun :)

What we have done lately
- added binutils for cil as simple wrappers on DotGnu binutils
 simplifies build of a toolchain
instructions on how to build the toolchain (binutils +gcc), link at the end of the mail
- libc/libm
we developed an implementation of libc/libm on top of mscorlib that allows most of c applications to be compiled and run on any CIL Virtual Machine A lot of users asked for it since previously the lack of an implementation of the standard library prevented the use of the code generated in a lot of real world applications,
  all C applications depends in a way or another from libc
  we called it libstd and now it is built just after the compiler
- install in the bin directory also 2 wrappers on top on mono and ilrun to execute the generated applications
 (they just set correctly the libraries search PATH)

What are we doing now:
- we are defining an internal IR of the CLI Backend that is close to the CLI IR,
 on wich we can do some final optimizations
mostly optimizations on how the evaluation stack is handled, taking advantage of its semantic (implicit conversions, keep values on the stack instead of using local variables)
- we are developing a new set of binutils to handle CLI object files
  Now we are using binutils from DotGNU project.
  For the use in our context they had few drawbacks:
- a special assembler must be used, the objects files (.o) are not standard CIL assemblies and need special tools to be manipulated - they used CIL reflection to do the initialization of global variables,
      - it did not support a static library format and
     - there where some errors linking varargs functions
We are developing a new set of binutils that resolve all this issues. - update/merge with trunk

I added a small README file that explains how to build and install gcc with the CLI Backend and CLI binutils. You can find it in the ST branch (http://gcc.gnu.org/viewcvs/branches/st/README?view=markup)

Andrea C. Ornstein

Reply via email to