I was worried about the perl compiler state after parts have been removed from CORE with 5.9.5.
Having patched parts of B::Generate and more packages for 5.10, I felt to give B::C and friends a try.
I also wanted to experiment with the GNU lightning library, which I also evaluate for a clisp bytecode compiler extension (done recently by Yann Nicolas Dauphin in parallel), and for another project of mine. The JIT compiler for clisp is now usable, but slow.
So I fixed the obvious compiler warnings with the changed structs, and packaged B::C, B::CC, ByteLoader and its helper packages for a forthcoming B-C-1.05 package.
I also had some thoughts on future optimizations
when a native code perl compiler backend is available. This is what JIT lightning does.
E.g. type checking and detecting IVonly or PVonly ints or strings, which could be optimized to smaller and faster ops in JIT assembler.
Thinking about new B::Asm and B::JIT backends, "PLJC" ByteLoader 4-byte magic header.
byterun.c => jitrun.c
Current state:
1.04_02 2008-01-22 rurban
* removed from CORE, now on CPAN.
* added byteorder to bytecode header.
* added support for 5.10 (NOT YET WORKING!), 5.9.5 not tested.
up to 5.8.x already in CORE, so disabled.
add back support later, when C/CC is improved or more features
are added.
* added type hekindex
* added c.t and cc.t tests
* extended bytecode.pl format: added version logic
to have strictly consecutive indices
All compile-time failures fixed, but still some run-time failures for bytecode XCV_STASH and PV handling.
http://rurban.xarch.at/cygr/perl/B-C-1.04_02.tar.gz