Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 517 lines (417 sloc) 20.1 KB
-*- change-log -*-
Started on CPAN with B-C-1.04_12. The perl compiler was in CORE from alpha4
until Perl 5.9.4.
1.04_21 2009-11-07 rurban
* yapc_bratislava08.pod: added
* fixed CALLREGCOMP >=5.10 by using dynamic newSVpvn as in ByteLoader
1.04_20 2008-06-25 rurban
* t/TESTS: numbered.
* t/TESTS: added sub FETCHSIZE to test 16. required now
*, change debug globals to hash.
* Fix B::RV::save for 5.10
* 5.10 fixed GvSV to GvSVn (PERL_DONT_CREATE_GVSV), fix cc test 3+4 crash
* Artistic, Copying: added. Clarified perl license.
* fixed IO=>PVNV problem in test 15.
*, bytecode.h: rewrote gp_sv and gp_file setters
with x (special setters). Fixes unshare hek assert in test 15, and force
creation of GVSV.
* 0.07_05: cygwin text-mount fixes with \r\n
* t/, t/ require bash, accept testnumber args
* fix PORTABILITY docs
* t/ -Bdynamic: link to shared libperl
* cc_harness: simplify. fixed for -Bdynamic -E
1.04_19 2008-06-08 rurban
* CXt_LOOP check rewrite, use now CxTYPE_no_LOOP()
*, t/*.t: useithreads, not usethreads
* bytecode.t, TODO handling: do not print "ok 1 #"
* b.t: fixed skip logic, better skip message
* Bblock: fixed to work without B::Concise (5.6.2)
* C.xs: add PM_GETRE for 5.6.2 and earlier
* Fix PP_EVAL hack from 1.04_18
* Bytecode: fixed IO::SUBPROCESS error (test 15)
* cc_harness: check static libperl.a, else try dynamic. Support -E
* ByteLoader: support different byteorders (Disassembler not yet)
* ByteLoader, Assembler, add archflags to header, relax
platform strictness.
* t/stash.t fixed for 5.10
* Disassembler: added hashref return for get_header in scalar context.
* Bytecode: fixed compiler crash/assertions for GV without GP (test 11)
1.04_18 2008-06-04 rurban
* Fixed t/assembler.t on 5.6.2
* Added ByteLoader::unimport (from 5.6.2)
* ByteLoader: Fixed bytecode crashes for 5.10+5.11 in 2-5, 7 by
removing PMf_COMPILETIME from op_pmflags. Reason: empty
check_substr in INTUIT. (6 still failing)
* ByteLoader: Fixes for 5.11 by using PM_SETRE (test 7 still failing)
* Bytecode: removed op_reflags. pregcomp with op_pmflags alone
is enough to reconstruct it.
* C,CC: enabled static_ext + DynaLoader boot section again. Fixed in cygperl.
* CC: fixed Bug#55302 PP_EVAL by adding PP_EVAL_thr for threaded perl.
cc_runtime.h was always wrong on this!
1.04_17 2008-04-20 rurban
Added Fedora Core 1 as test system (5.6.2, 5.8.3, 5.11.0@33708 + valgrind)
* ByteLoader: Fixed broken BYTEORDER check (for 32int)
* ByteLoader: Remove allowing older versions until we have
an opcode table for older versions.
* ByteLoader: Fixed SIGSEGV with older gcc (3.3.2) at
bstate->bs_obj_list[0] = NULL
* ByteLoader, C.xs: Newx() support and more for older perl's.
Tested with 5.8.3
* Fixed <11 op_reflags (double definition)
* Support 8-10 version syntax (op_pmstash, cop_io)
* Makefile.PL: added MKPATH blib/bin
* added ByteLoader/ppport.h
* fixed t/stash.t for 5.11
1.04_16 2008-04-14 rurban
* ByteLoader: Fix PL_tokenbuf for older perls without PL_parser
* B::C: walkoptree_slow for verbose statistics op_count.
* Consistent in -v verbose and not verbose.
* Workaround for invalid pad in save_context.
* Added -Dp for verbose package cache printing.
* -v verbose adds more generated comments: op struct fields
* Fixed cop_label for 5.11 (Change #33656)
* Fixed make subdirs-test error in 5.8.8
* Fixed RT#52920 "invalid cop_free of nullified cop" for B::C
1.04_15 2008-04-11 rurban
Highlights: bytecode and ByteLoader portability preparation and
commented disassembler output. PVGV and new REGEX still broken.
Fixes for no ithreads.
* Fixed verbose Bytecode for old B::Concise (5.8.8). t/
failed before.
* ByteLoader: Work on portability (different arch, version and sizes).
Added bl_header.
Changed macro BYTECODE_HEADER_CHECK to function bytecode_header_check().
Fixes for no threads.
* bytecode.h: pregcomp fix for 5.10 w/o threads
(Thanks to for his cpantest for netbsd).
use xpv_cur and not xpv_len for the rx length (len - 1) to strip off
the ending nul byte.
5.10: new minlen check aborts
* ByteLoader security: added strconst maxsize flag to
for buffer overflow checks.
* Bytecode -DA for devel assertions of absolute or probably wrong opindex
pointers (nyi)
* disassemble, B::Assembler: commented output, similar to -MO=Bytecode,-S
Added backwards option --bare for older assemblers.
* assemble, disassemble: added pod
* B::Disassembler:
Provide default printers print_insn (commented) and print_insn_bare.
Portability: Use the header settings from the .plc and not the current
perl settings.
* B::Assembler 0.07_03, B::Disassembler 1.05_02, ByteLoader 0.06_03:
Added longsize to the bytecode header, just for xcv_depth.
* B::Debug 1.05_03: Fixes for no threads.
* Makefile.PL: Fixed script/perlcc.PL dependency
make: *** No rule to make target `script/perlcc', needed by
(Thanks to for his cpantest for solaris)
* Added test TODO's, Added perloptreeguts.pod
1.04_14 2008-03-24 rurban
* Fixed some 1.04_13 +x executable permissions in docs. Windows habits.
1.04_13 2008-03-24 rurban
* Fixed B::C pv init in 5.10. Forgot refcnt and flags.
* Added "Other perl to exe compilers" section to perlcompile.pod.
This is even a FAQ.
* Added the NOTES to perlcompile.pod
* Added temp. perloptreeguts.pod. In work, also at the wiki.
* Fixed Bytecode op_pmflags assertions.
* Added orangesect for enough regexp space in RE's sv_any.
Engine not initialized though.
* Hangs in C/CC executables at an op_free(PL_main_root) trying to free
the static op structsm because the earlier op_seq -1 hack is gone now,
and opt_static was replaced by opt_latefree. Set now opt_latefree = 1.
This fixed tests 1 and 13. Slowly making progress step by step.
1.04_12 2008-03-16 rurban (first upload)
* Fixed bug #40435 CC: Can't locate object method "_save_common_middle"
via package "B::FAKEOP"
* move tests from [bc]*.t into shared TESTS file.
* fixed remaining ugly Bytecode bug in B::AV::bsave
$_ = $_->ix for @array.
Now we are at the same state as with 5.9.4
* fixed wrong bc cop_warning cast for 5.8
* fixed CC pmreplroot and pmreplstart fields
* make C and CC less verbose, honor -v, -q ignored.
1.04_11 2008-03-09 rurban
* removed Jit and Asm stuff. Maybe as seperate packages somewhen.
But targeting PIR makes more sense.
* added STATUS
* added old Changes from the new git clone repo by Sam Vilain
* fix C cop
* fix C savepvn apparently
* work on HV init - crashes at invalid entry
* use run_cc_test
1.04_10 2008-02-26 rurban
* change bc pvx access
dummy struct bytestate_xpv, so pv has the same fields as with 5.8,
seperated from the sv. The sv is seperated from the pv.
TODO: different strategy for B::C, must link xpv to sv
* add and parse Assembler comments
* add Bytecode comments to -S output unless -q
* change op_reflags from U16 to U32
* guarantee ByteLoader backwards compatibility: Accept lower versions also.
1.04_09 2008-02-25 rurban
* restored 5.8 backwards compatibility, mainly for test comparison.
CPAN installation will abort.
* make t/test*.sh PERL independent
* fixed B::C GV init crashes (SvPOK assertion)
* added B::C RE section
* fixed B::C xpvcv and xpvnv section
* comment Bytecode -S nice ops to re-assemble them without errors
* added new asm opcode op_reflags
* removed Bytecode cop_arybase for 5.10
* 5.8 compatibility: fixed versioning, Asmdata creation
(exact same for 5.8.8), asmdata.t, b.t tests
* improved make clean
* add ByteLoader -Dt and -Dv debugging
* don't link against jit code against possible sideeffects
* fixed c.t and cc.t tests
1.04_08 2008-02-22 rurban
* fixed t/b.t tests for 5.11 (REGEXP, ref RV => IV)
* fixed Makefile.PL deps to ignore the interim .pl files
* added PMOP reflags
* added madprop to B-1.18_01 and B::C (if provided by B)
* enhanced B::Debug 1.05_02
* fixed B::C PL_cshlen (already initialized since 5.10)
* fixed B::C GvFILE
* fixed various (SV)xpv list casts and inits,
* fixed B::C xpvnv_list for 5.10
* fixed B::C xpvio_list for 5.10
* fixed B::C pmopsect for 5.11
* bootstrap also all $Config{static_ext}, not only dynamic stashes
1.04_07 2008-02-20 rurban
* moved bstate->bs_pv.xpv_pv slot to bs_pv.xiv_u.xivu_p1
* fixed pv_free
* added op_pmflags 2 to match PMOP
* moved B into lib/B
* fixed ByteLoader Makefile deps
* added -DM flag to Bytecode backend
* added perlcompile.pod and Perl_5_Internals.htm
1.04_06 2008-02-19 rurban
* no crashes anymore for 5.10, just op_pmflags & PMf_ONCE assertions.
* blead@32980 crashes in tests 11,16,17,18
* enhanced B::Debug (no version bump)
* fixed general op_list inits, and specials for av, hv
* almost fixed pv within sv handling
* added -O=C,-DS for SV debugging
1.04_05 2008-02-18 rurban
* added t/ and t/test*.sh to MANIFEST.
* fixed ByteLoader reading from the <DATA> filter.
* fixed -H .plc header parsing
* updated Bytecode options in NOTES and pod
* added -O=Bytecode,-v option
* fixed PL_preprocess and SvREPADTMP_off for 5.11
1.04_04 2008-02-08 rurban
* added jitcompiler macros
1.04_03 2008-02-05 rurban
* added Jit and Asm layout, fixed Makefile deps
1.04_02 2008-01-22 rurban (never uploaded)
* removed from CORE, now on CPAN.
* added byteorder to bytecode header.
* added support for 5.10 (NOT 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 format: added version logic
to have strictly consecutive indices
1.04_01 2008-01-15 rurban (never uploaded)
* first package layout for all now non-CORE packages.
B::C was 1.03 when exterminated.
Oops, Module::Corelist says 1.05 for 5.9.4, Right so.
Nicholas Clark <> 2007-05-07 15:35:56 Exterminate!
ext/B/B/ Exterminate!
Nicholas Clark <> 2007-05-07 14:53:05
Given that @optype and @specialsv_name are hard coded tables, it seems
more logical for them to be in, rather than in the "boilerplate"
for the machine generated B/
Marcus Holland-Moritz <> 2004-08-29 13:22:48
Fix typo in B::Assembler.
Marcus Holland-Moritz <> 2004-08-29 13:21:50
Skip ext/B/t/assembler.t when configured without B.
Rafael Garcia-Suarez <> 2003-08-09 21:13:27
Remove ByteLoader from the list of modules whose compilability should
be tested : it's loaded (at runtime) by ext/B/t/bytecode.t (as Enache
pointed out.)
chromatic <> 2002-05-10 07:43:25
added ext/B/t/o.t
Gurusamy Sarathy <> 2001-03-19 08:07:09
Subject: Re: sync sync sync: have I missed any patches?
Replace djSP with dSP.
Mark-Jason Dominus <> 2001-01-16 14:43:18
Subject: [PATCH @8436] Eliminate op_children
(Replaced by #8448) Traces of op_children (cleanup of #8442)
(Replaced by #8448) More op_children traces (cleanup of #8442).
Subject: [PATCH #3 @8436] Re: Eliminate op_children
Replace #8444 and #8445.
Gurusamy Sarathy <> 2001-01-30 14:20:24
integrate changes#7984,7987,8010 from mainline (gets rid of
dTHR which has been a noop for a while now, except for the
compatibility definition in thread.h)
@8010 remove dTHR;
Gurusamy Sarathy <> 2000-12-18 03:37:02
@7518 UNIVERSAL::can
Gurusamy Sarathy <> 2000-12-18 00:03:38
Fix a couple of compiler-noted nits in #7235.
Fix of sorts for bug id 20000901.092. There seems to be no trace
of a 'pmshort' anywhere in the B, so the offending line was simply
Gurusamy Sarathy <> 2000-12-17 22:49:13
Subject: [ID 20000928.002] perlcc & option mismatch
Did not apply cleanly, manual intervention was needed.
Subject: [ID 20001003.006] B::Debug not -w clean
Test harness update to sync with the new perlcc,
from Simon Cozens.
Gurusamy Sarathy <> 2000-11-27 18:11:21
Bytecompiler patches from Benjamin Stuhl.
More bytecompiler.
Subject: [PATCH blead] B:: missing dependency
Byteloader 0.04
Gurusamy Sarathy <> 2000-11-27 13:53:18
U8->U16 CvFLAGS(cv)
Jarkko Hietaniemi <> 2001-10-25 18:07:58
* make re, Opcode, File::Glob and B threadsafe
* include XS_VERSION in MY_CXT_KEY (tweak for change#12652)
Jarkko Hietaniemi <> 2001-04-05 04:00:33
Integrate changes #9544,9547,9549(perlio),9550,9551 from
maintperl into mainline.
"double" should be "NV"; standard typemap is missing entry
for NV
Author: bailey <bailey@bailey_vms> 2000-02-09 09:09:45
Resync with mainline
bailey <bailey@bailey_vms> 2000-01-20 00:25:30
Quick integration of mainline changes to date
Nathan Torkington <> 1999-08-01 11:23:35
ext/B/B/ patch
Message-ID: <>
Nick Ing-Simmons <> 1999-01-02 14:06:30
Export constant subs from B.xs for op.h, cop.h and a few others.
Use them in various B::* rather than have local defs.
Nick Ing-Simmons <> 1999-01-02 10:04:02
Integrate ext/B changes from //depot/cfgperl
'copy in' ext/B/B.xs
(@2460..) 'merge in' ext/B/B/ ext/B/B/
ext/B/B/ (@2524..)
Nick Ing-Simmons <> 1999-01-02 10:04:02
@2491 Integrate ext/B changes from //depot/cfgperl
Gurusamy Sarathy <> 1998-09-23 09:52:46
B::Asmdata define PUT_svindex(), PUT_opindex()
Nick Ing-Simmons <> 1998-12-20 14:21:29
Save _all_ GV's which have SV, AV or HV set.
Gurusamy Sarathy <> 1998-08-02 07:09:35
fixes for pod noises
Gurusamy Sarathy <> 1998-07-22 02:08:00
fix up B modules for PL_* changes
Malcolm Beattie <> 1998-07-21 18:13:16
Compiler docs for 5.005
Message-Id: <>
Gurusamy Sarathy <> 1998-07-22 01:29:09
s/PL_sv/PL_bytecode_sv/ etc., so we have unique, case-insensitive
Gurusamy Sarathy <> 1998-07-21 07:12:00
fix with moved var names
Gurusamy Sarathy <> 1998-07-21 05:31:13
part 2 of PERL_OBJECT fixes (globals in bytecode.h moved to intrpvar.h)
Gurusamy Sarathy <> 1998-07-21 05:29:10
part 1 of PERL_OBJECT fixes for new var names
Gurusamy Sarathy <> 1998-07-20 09:38:39
complete s/foo/PL_foo/ changes (all escaped cases identified with
brute force search script). Result builds and passes all tests on
Solaris. win32 and PERL_OBJECT are still untested.
Nick Ing-Simmons <> 1998-07-18 13:53:03
PL_ prefix to all perlvars, part1
Builds and passes all tests at one limit i.e. -DPERL_GLOBAL_STRUCT
Ilya Zakharevich <> 1998-07-15 06:10:36
Minor improvements to perlcc
Message-Id: <>
Gurusamy Sarathy <> 1998-07-15 10:01:41
add stub docs for ext/B, other minor tweaks
Gurusamy Sarathy <> 1998-07-09 05:37:48
get it building again on win32
Gurusamy Sarathy <> 1998-07-04 05:02:01
fix perlcc to not rm output file, and other -w(arts)
Stephen McCamant <> 1998-06-22 21:19:43
Inheritance of B:: classes
Message-Id: <>
Gurusamy Sarathy <> 1998-06-19 17:22:23
update repository copy of after `perl`
Gurusamy Sarathy <> 1998-06-11 02:59:23
fix outdated
Nick Ing-Simmons <> 1998-05-14 18:09:01
Changes to allow compiler with gcc-2.8.1 in C++ mode,
Remove K&R style functions, avoid struct/typedef clash.
Ed Peschko <epeschko@den-mdev1> 1998-04-29 21:02:36
[ PATCH 5.004_64 ] Integrated regression tests for compiler
added perlcc.PL
Ilya Zakharevich <> 1998-04-08 03:21:03
Subject: [PATCH 5.004_64] Cryptic error from B::CC
Date: Sat, 11 Apr 1998 19:52:25 -0400 (EDT)
Malcolm Beattie <> 1998-04-14 16:22:51
[compiler] CC did "<<" instead of ">>" for right-shift on ints.
Charles Bailey <> 1998-03-02 01:48:27
Miscellaneous minor fixes
Spider Boardman <> 1998-03-01 02:02:47
Almost OK: 5.004_61 (threads, perlio)
Andrew Cohen <> 1998-02-27 20:03:29
Change getc/fread to PerlIO_getc/fread in bytecode.h:
Subject: [PATCH 5.004_61] bunch of small patches
Nick Ing-Simmons <> 1998-02-28 11:31:15
Missed FREAD in bytecode.h
Cannot export svref_mutex in non-threaded perl
Malcolm Beattie <> 1998-02-27 18:35:27
Change FREAD/FGETC to BGET_FREAD/BGET_FGETC to avoid clash with
preprocessor symbol on Digital UNIX.
Gurusamy Sarathy <> 1998-02-26 03:56:19
[win32] various cleanups so that B can be built as "just another extension"
- export symbols needed for building B
- bset_obj_store() is needed by byterun(), so define it there instead
of at B.xs, and export it
- freadpv() is only used in B.xs, so move it there
- byte*.h are now included by perl.h
- regenerate embed*.h
Gurusamy Sarathy <> 1998-02-22 02:40:56
[win32] get compiler building under win32 (needed Makefile.PL
hacks that could be applicable to other platforms)
Malcolm Beattie <> 1998-02-25 17:44:34
More compiler tweaks.
Malcolm Beattie <> 1998-02-20 18:23:47
Remove compiler files from their old lib/B locations. The compiler
now builds by default (without the byteperl executable so far) and
seems to work at least minimally.
Malcolm Beattie <> 1998-02-20 18:05:33
Move lib/B/... and lib/[BO].pm over to where they should be,
under ext/B.
Malcolm Beattie <> 1998-02-20 17:54:58
Start getting compiler to work when built with the core.
[Still won't work as of this change.]
Malcolm Beattie <> 1998-02-20 16:42:13
* Merge perlext/Compiler/... into mainline. Some files move to
ext/B/..., some to lib/B/..., and go in lib and some
move to the base perl directory (e.g. headers). Will need some
cleaning up before it builds properly, I would guess.
Malcolm Beattie <> 1998-02-20 16:39:38
* [compiler] Win32 changes from Sarathy, tweaked slightly by me.
Malcolm Beattie <> 1998-02-17 17:50:50
* Assorted changes to the compiler
Malcolm Beattie <> 1997-12-17 10:59:40
* Fix typo in compiler B/
Alpha5 Malcolm Beattie <> 1997-12-10 18:33:53
* Start overhauling compiler. It was working at least minimally
right up until the final tweak of B.xs to add threadsv_names
at which point building it provokes a seg fault in perl while
doing the xsubpp :-(.
Malcolm Beattie <> 1997-09-03 12:31:48
* Make compiler build/work with devel 5.005
Malcolm Beattie <> 1997-07-05 11:58:05
* Change %lx to %x in B::CV::save to prevent some CV
fields becoming 0 in the init section. Add missing
write_back in B::Stackobj::Padsv::load_double to fix
test 22 of op/my.t.
Malcolm Beattie <> 1997-07-05 11:58:05
* B::CC::pp_padsv must cope with vivify_ref (5.004)
as well as provide_ref (5.003)
a4 Malcolm Beattie <> 1997-05-03 14:47:06
* initial check in of compiler
from version Alpha a3 to a4
Something went wrong with that request. Please try again.