perl compiler 5.9.5

rurban on 2008-02-02T09:51:42

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


More Asm stuff

rurban on 2008-02-09T12:46:20

I've had no time to fix the remaining B::C run-time problems. Too busy with clisp and postgresql packaging problems.
But I've added some docs and Asm and Jit stuff just for experiments.
Later this will go to extra packages B::Asm and B::Jit.

http://rurban.xarch.at/cygr/perl/B-C-1.04_04.tar.gz