I just uploaded the Parrot intermediate compiler to CPAN as well as committing it to the Parrot CVS repository.
You can find it under parrot/languages/imcc if you update your parrot tree, or get it from CPAN shortly under http://cpan.org/authors/id/M/ME/MELVIN/imcc/ Please read the README. Have fun! I'll be expecting lots of suggestions. I'll be expecting suggestions from the Perl6 language guys as well as the Ruby guys. I'm personally very happy that, even the hack that it is, there are < 1000 lines. 340 imc.c 363 imcc.y 164 imcc.l 77 imc.h 944 total Well thats before bison and flex do their thing. :) I provided a sample, generated from my copy of Cola, you'll notice it only includes subroutines so you'll get a warning that it is missing an 'end' when you assemble it. Just edit the .pasm version after compilation and add in an 'end' before the ret in the first sub. This is just a temporary kludge, I'll be adding a .start directive which will specify the start routine for the program. People writing high-level compilers will want to do this themselves anyway. The main thing it is lacking right now is spill handling and support for Parrot's keyed aggregates, plus a few more keywords. We need to develop a language guide as well, but I'll hold off until it has a few revisions, pending feedback. -Melvin
