The current BitC prototype compiler is a whole-program static compiler.
At the moment, it isn't terribly useful, mainly because I was struggling
to find any clean way to make it "feel" like a traditional separate
compilation tool.

Since we need to move forward, here is the plan. Comments, critiques,
and problem identifications would be greatly appreciated!


File Extensions:

  .bitc      Used for bitc interface files (only).
  .bits :-)  Used for implementation "source" files.
  .bito      Used for "object" files. A "bito" file actually contains
             BitC source code, but all of the unit-at-a-time passes have
             already been applied, notably including lambda hoisting
             and closure conversion.

So a compile line will look like:

  bitcc -c mumble.bits ... -o mumble.o

The actual code generation happens at the "link" stage:

  bitcc -o a.out x.bito y.bito z.bito ...

The compiler will internally generate some god-awful ugly .c file, and
will proceed to hand that to GCC for compilation.

Eventually, we'll make provision for archive libraries of .bito files.
Actually we need those for other reasons in any case.


The main reason that I need to nail this down is that we need to start
implementing parts of the BitC standard library. Some parts of that
library want to include polymorphic functions.

I do recognize that there are various tricks which can be played here to
make all of this more efficient. Many of those tricks can be done
without altering the command line framework above, but for the moment
I'm looking to get it working at all rather than worrying about the
"link" speed.


Reactions?


shap

_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to