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 _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev