Changes for version 1.30 - 2011-03-06
- dbmopen, cc_runtime.h, perlcc, --staticxs
- C.pm (1.30): support dbmopen, fixes issue 24. fixed xpvmgsect (was xpvsect) !-fcog < 5.10 (YAML, test 41,42,43). fixed m//i since 5.13.10: swash_init("utf8::Cased"). fixed method_common package_pv detection in most cases. still two cases open, without tests. PADOP GV NULL 0x20000, GV RV 0x40802. fixed method_named with >= 1 arg, checking for const PV package_pv (test 35) support GvCV_set and GvGP_set introduced with 5.13.10. [RT#65630] implement -staticxs for perlcc --staticxs either link to found static libs or link to shared lib with fixed LD_LIBRARY_PATH/PATH (nyi in C, just perlcc). optimize -fav-init use_av_undef_speedup &PL_sv_undef initialization (again). reserved -mPackagename (NYI) added verbose(),module() for CC. implement outline of -m module, name detection missing. added -fno-fold recommended since 5.13.9 to omit the huge utf8 tables. added -fno-warnings, recommended since 5.13.5. added special workaround for Scalar::Util bootstrapping which did not detect List::Util, since it is not in its ISA, only required. need a better scan. fixes test 44. init XS within Od. prevent autoloaded STDERR printing on non-debugging perls (e.g. "Storablelogcarp").
- CC.pm (1.09): support dbmopen, issue 24 failing due to XSLoader (test 45) no pp_name shortnames in embed.h since 5.13.9, use Perl_pp_name(aTHX). implemented dorassign, fixes issue 45. fixed XSLoader detection, moved use_xsloader to save_unused_subs() skip duplicate cc(pp_sub_*) functions (freebsd 45) added missing END block code (test 28). added B::C::verbose on -v fixed B::C::verbose crash by adding B::FAKEOP::fake_ppaddr. fixed compile_stats renamed -n module_name to init_name. check and set -f options from C also. implement outline of -m module, name detection missing. added option -fno-name-magic. added experimental option -ftype-attr. added TYPES pod section. added pod for some funcs: load_pad, cc_queue, label. option -strict only used with DEBUGGING perls. be less chatty with compiling bblocks. light layout cleanup of generated code sections. added Vishal Bhatia <vishal at deja.com> to AUTHORS.
- Bytecode.pm (1.30): support dbmopen, fixes issue 24. re-added -m, compile as module to .pmc store AV elems for non-tied AV->MAGICAL >5.6 (i.e. @ISA, ...) (new test 47). -DA: limcheck PV. verbosity: added nice1 (condense elements). name SV indices also.
- Byteloader: support GvCV_set introduced with 5.13.10 [RT#65630]
- perlcc (2.10): fixed -B -r, -B output and run bytecode. implement --staticxs to workaround DynaLoader problems. use it in t/modules.t add sopath to PATH on -r. Without -r the sofile should be symlinked so that the process can find it. implement --shared and --static, --shared fails on strawberry due to core problems. implemented getopts bundling: -ScO -e'bla' -v4 -oa is now possible. disabled some old single-minus switches: -testsuite, -time, -log, ... requires now double-minus --testsuite, --time, --log, ... kept legacy handling only for -Wb=.. and -stash. fixed -B -e'oneliner'. fixed -B @ARGV, no duplication of @ARGV, c_argv.t 3. re-added -m|--sharedlib for Bytecode and C (NYI). print C and CC filtered compiler output. -v5 adds -v to the compiler options. -v6 adds -Dfull to the compiler options. support -Wb= for -B. fixed -Br for 5.6: add -MByteLoader.
- Stash (1.01): add option xs to print xs modules with -x prefix. usable via -MO=Stash also. new option -D for debugging. omit PerlIO::Layer. added pod
- Disassembler (1.08): 5.6: fix ldop comments. add op_type names, add @svnames, add indices, add ldspecsvx type.
- Assembler (0.10): print more flags (as hex) and indices. better limcheck diagnostics (op,sv,pv).
- cc_runtime514.h: removed from CORE with 5.13.9. [RT#65628] If so, cp it back. You might need sudo cp. (unchecked) Renamed not to pollute tests with older perls. Expanded PERL_MAGIC_taint 't' for 5.6.
- C.xs: added experimental method_cv for the hash-only case, untested.
- t/modules.t: try --staticxs first, try crosscheck without perlcc.
- t/issue24.t: added.
- t/issue45.t: fixed and added 3 more tests.
- t/e_perlcc.t: added to test the new option handling.
- t/testc.sh, t/TESTS: fixed wrong test 39 for 5.8, added 47, 104 (reset), 105 (type-attr).
- t/testplc.sh: added 47.
- t/stash.t: rewritten. allow 5.6, use Test::More, more stable
- t/todomod.pl: added. interactive tool to check log.modules reports and fix TODOs
- status_upd: recommend and fix ./status_upd -f -q -d -q -d prints only the actual tests
- Changes: added more missing history ca. 1997-2000.
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
load byte compiled perl code
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
Stack and type annotation helper module for the 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
in lib/B/CC.pm
in lib/B/CC.pm