The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 1.08 - 2009-12-23

  • Adapt coding guidelines, add C and cperl coda. Reformat sources.
  • C.pm: Detect AUTOLOAD and CLONE (test 27 and 31). 5.10 is now the best release for unoptimized B::C. 5.8 is faster optimized, but misses some autoloaded xsubs. Simplify PVMG exclusion; all non-magical, not just PAD_OUR, as in Bytecode.
  • Bytecode.pm (1.04): Add missing BM logic to GV >= 5.10. Fixes test 11. Fixed op_pmflags logic for 5.10 threaded only, no += 2. Fixes test 2. Protect empty match from setting op_reflags. Fixes test 20. Now >=5.10 threaded has the same errors as non-threaded. Add perlversion to the -S generated header. Document more options -TI, -TF, -u<package>
  • perlcc: improve help. use Pod::Usage as module, not via cmdline. fix previous installation quirks.
  • assemble: improve pod. make it installable.
  • disassemble: make it installable.
  • cc_harness: ditto.
  • Makefile.PL: added script/* as EXE_FILES to install them.
  • t/TESTS, t/testc.sh, t/testplc.sh: test 31 non-xs AUTOLOAD added
  • ByteLoader/Makefile: tuning, bytecode.h triggers now byterun.c
  • bytecode.h: Specialize pregcomp on 5.10; add PL_regex_pad[0] for pregcomp if missing. fixes tests 3,4,5,7,31 on 5.10.

Documentation

ByteLoader bytecode versions
Autogenerated data about Perl ops, used to generate bytecode
Introduction to the Perl Compiler-Translator
The Perl op tree
Assemble Perl bytecode
generate executables from Perl programs
Need help with the perl compiler, emit C or JIT, blabla

Modules

Autogenerated data about Perl ops, used to generate bytecode
load byte compiled perl code
Autogenerated data about Perl ops, used to generate bytecode
Assemble Perl bytecode
Walk basic blocks
Perl compiler's bytecode backend
Perl compiler's C backend
Perl compiler's optimized C translation backend
Disassemble Perl bytecode
Helper module for CC backend
show what stashes are loaded

Provides

in lib/B/C.pm
in lib/B/C.pm
in lib/B/Disassembler.pm
in lib/B/C.pm
in lib/B/CC.pm
in lib/B/CC.pm