whiteknight/imcc_compreg_pmc branch

Andrew Whitworth wknight8111 at gmail.com
Wed Feb 2 00:55:33 UTC 2011


The whiteknight/imcc_compreg_pmc branch is the most recent in a series
of branches to clean up IMCC. Between the various branches I've made
on the topic, a significant number of things have changed with respect
to IMCC:

1) The IMCC interface functions have been cleaned and completely
unified. There is now one function for compiling PIR and PASM code
(imcc_run_compilation_reentrant), which is called by two new interface
functions: imcc_compile_string and imcc_compile_file. These new
functions return a PackFile* structure.
2) All IMCC functions have been modified to take an imcc_info_t* as
the first parameter instead of a PARROT_INTERP. The imcc_info_t*
structure contains a ->interp field now.
3) Likewise, the Inter* structure no longer contains an ->imcc_info field.
4) The PIR and PASM compreg PMCs are not NCI PMCs anymore. They are
now instances of a new PMC type, IMCCompiler.
5) IMCC is not setup or initialized during initialize_interpreter
anymore. They are now created in frontend/parrot/main.c. It's
possible, by using an alternate frontend, to run libparrot without
ever creating an IMCC compreg PMC. IMCC is still built into libparrot,
however.

Primary development on all these features is complete, but there is a
lot of debugging work to do still. The build does not complete and the
test suite does not run. I am looking for volunteers to help out with
the debugging effort. If you have a few spare tuits, check out the
branch, try to build it, and see what's going on.

Thanks,

--Andrew Whitworth


More information about the parrot-dev mailing list