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

Changes for version 1.53 - 2015-12-06

  • added 5.22 support, some cperl optimizations and fixed most remaining 5.14 issues. Bytecode broken upstream with 5.22.0
  • Bytecode (1.17): removed lastsib bit for 5.21.2-5.21.10, support only moresib op Add ops for padl, padn, padnl, unop_aux and methop needed for 5.22 ByteLoader was broken upstream with 5.22. You need to build a perl with `perlall build --patches-Compiler 5.22.0` or use cperl5.22.2. Added a probe, set $B::C::Flags::have_byteloader
  • Disassembler (1.13), Assembler (1.13): support PADNAME and PADNAMELIST for 5.22
  • C: fix B::PMOP::precomp for UTF8 (#333, #338, GH#50) Add 5.22 support with a new unop_aux (multideref) section, methop support, new support for PADNAME and PADNAMELIST objects. Fix upstream B::UNOP_AUX::aux_list bug with threads. Use our own method which returns the PADOFFSET, not the SV. (#341) Removed B::Section which used base. (toddr) Re-add PL_sv_objcount on cperl Fixed XSUB CONSTSUB alias (44,45,... PR #228) (atoomic) and anonymous CVs for 5.22 (#246, #305) Proper utf8 support for gv_fetchpv, gv_stashpv and cv_get, cache gv_stashpv calls. Fix 5.22 for empty hash keys, share_hek("") (272, GH#249) Fixed refcounts for shared hek's, fixing the notorious unshare_hek assertions since 5.10 (GH #251, #255). See 1.06: "Had to disable -O1 -fcog (pv_copy_on_grow) on 5.10 and higher until I find out how to fool S_unshare_hek_or_pvn. This fixes all C -O1 and -O2 tests. Warn about this." Fix Inf/NaN support for C (GH#287) Fix handling of READONLY hashes in 5.22, i.e. use feature (GH#250) Support custom op Devel_Peek_Dump, added with 5.20 (GH#274) Defer regex compilation to new init1 for SWASHNEW (GH#273) Support unicode labels (upstream B bug) (GH#318) Skip unneeded init-time lexwarn checks, support optimized cperl PERL_SUPPORT_STATIC_COP (cperl #70) Fixed overload stringify broken since 5.18 (GH #219) by adding a mro_isa_changed_in() to the overloaded stash. Support multiple stash ENAMES, needed since 5.14 (GH #331) This fixed many old 5.14 limitations. (Added to our version of B) Support %^H, storing the hints_hash (features, pragmas) (GH#220) This fixed many old 5.14 limitations. Improve MATCH once (m??) handling with reset, find PMOP from the Regexp dynamically (GH#252) Bump refcounts of dynamic get_cv refs (#293). Fixes Coro in global destruction. Skip more XS defined POSIX constants: all that start with 'M' (GH#335, #345) One more "Eval-group not allowed at runtime" fix (GH#137, GH#346)
  • CC (1.16_01): Encode unicode labels (GH#318)
  • Stackobj (1.12_01): fix Inf/NaN support for CC (GH#287)
  • t/CORE: versioned the core tests and moved to a external submodule perl11/p5-coretests on github. (GH#332)

Documentation

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

Modules

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

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/C.pm
in lib/B/CC.pm