-*- 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_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/testplc.sh 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 david@cantrell.org.uk 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 bytecode.pl 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 `blib/bin/perlcc'.
(Thanks to david@cantrell.org.uk 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 bytecode.pl 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/test.pl 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 bytecode.pl 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.
Nicholas Clark <nwc10+p5p4@colon.colondot.net> 2007-05-07 15:35:56
bytecode.pl: Exterminate!
ext/B/B/Asmdata.pm: Exterminate!
Nicholas Clark <nwc10+p5p4@colon.colondot.net> 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 B.pm, rather than in the "boilerplate"
for the machine generated B/Asmdata.pm
Marcus Holland-Moritz <mhx-perl@gmx.net> 2004-08-29 13:22:48
Fix typo in B::Assembler.
Marcus Holland-Moritz <mhx-perl@gmx.net> 2004-08-29 13:21:50
Skip ext/B/t/assembler.t when configured without B.
Rafael Garcia-Suarez <rgarciasuarez@gmail.com> 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 <chromatic@rmci.net> 2002-05-10 07:43:25
added ext/B/t/o.t
Gurusamy Sarathy <gsar@cpan.org> 2001-03-19 08:07:09
Subject: Re: sync sync sync: have I missed any patches?
Replace djSP with dSP.
Mark-Jason Dominus <mjd@plover.com> 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 <gsar@cpan.org> 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 <gsar@cpan.org> 2000-12-18 03:37:02
@7518 UNIVERSAL::can
Gurusamy Sarathy <gsar@cpan.org> 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
removed.
Gurusamy Sarathy <gsar@cpan.org> 2000-12-17 22:49:13
Subject: [ID 20000928.002] perlcc & ByteCode.pm 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 <gsar@cpan.org> 2000-11-27 18:11:21
Bytecompiler patches from Benjamin Stuhl.
More bytecompiler.
Subject: [PATCH blead] B:: missing dependency
Byteloader 0.04
Gurusamy Sarathy <gsar@cpan.org> 2000-11-27 13:53:18
U8->U16 CvFLAGS(cv)
Jarkko Hietaniemi <jhi@iki.fi> 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 <jhi@iki.fi> 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 <gnat@frii.com> 1999-08-01 11:23:35
ext/B/B/Disassembler.pm patch
Message-ID: <14244.33431.739419.806927@localhost.frii.com>
Nick Ing-Simmons <nick@ing-simmons.net> 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 <nick@ing-simmons.net> 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/C.pm ext/B/B/CC.pm
ext/B/B/Stackobj.pm (@2524..)
Nick Ing-Simmons <nick@ing-simmons.net> 1999-01-02 10:04:02
@2491 Integrate ext/B changes from //depot/cfgperl
Gurusamy Sarathy <gsar@cpan.org> 1998-09-23 09:52:46
B::Asmdata define PUT_svindex(), PUT_opindex()
Nick Ing-Simmons <nick@ing-simmons.net> 1998-12-20 14:21:29
Save _all_ GV's which have SV, AV or HV set.
Gurusamy Sarathy <gsar@cpan.org> 1998-08-02 07:09:35
fixes for pod noises
Gurusamy Sarathy <gsar@cpan.org> 1998-07-22 02:08:00
fix up B modules for PL_* changes
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 1998-07-21 18:13:16
Compiler docs for 5.005
Message-Id: <199807211713.SAA20735@sable.ox.ac.uk>
Gurusamy Sarathy <gsar@cpan.org> 1998-07-22 01:29:09
s/PL_sv/PL_bytecode_sv/ etc., so we have unique, case-insensitive
names
Gurusamy Sarathy <gsar@cpan.org> 1998-07-21 07:12:00
fix bytecode.pl with moved var names
Gurusamy Sarathy <gsar@cpan.org> 1998-07-21 05:31:13
part 2 of PERL_OBJECT fixes (globals in bytecode.h moved to intrpvar.h)
Gurusamy Sarathy <gsar@cpan.org> 1998-07-21 05:29:10
part 1 of PERL_OBJECT fixes for new var names
Gurusamy Sarathy <gsar@cpan.org> 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 <nick@ing-simmons.net> 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 <ilya@math.ohio-state.edu> 1998-07-15 06:10:36
Minor improvements to perlcc
Message-Id: <199807151010.GAA11270@monk.mps.ohio-state.edu>
Gurusamy Sarathy <gsar@cpan.org> 1998-07-15 10:01:41
add stub docs for ext/B, other minor tweaks
Gurusamy Sarathy <gsar@cpan.org> 1998-07-09 05:37:48
get it building again on win32
Gurusamy Sarathy <gsar@cpan.org> 1998-07-04 05:02:01
fix perlcc to not rm output file, and other -w(arts)
Stephen McCamant <alias@mcs.com> 1998-06-22 21:19:43
Inheritance of B:: classes
Message-Id: <m0yoIgR-000EP2C@alias-2.pr.mcs.net>
Gurusamy Sarathy <gsar@cpan.org> 1998-06-19 17:22:23
update repository copy of Asmdata.pm after `perl bytecode.pl`
Gurusamy Sarathy <gsar@cpan.org> 1998-06-11 02:59:23
fix outdated bytecode.pl
Nick Ing-Simmons <nick@ing-simmons.net> 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 <ilya@math.ohio-state.edu> 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 <mbeattie@sable.ox.ac.uk> 1998-04-14 16:22:51
[compiler] CC did "<<" instead of ">>" for right-shift on ints.
Charles Bailey <bailey@newman.upenn.edu> 1998-03-02 01:48:27
Miscellaneous minor fixes
Spider Boardman <spider@orb.nashua.nh.us> 1998-03-01 02:02:47
Almost OK: 5.004_61 (threads, perlio)
Andrew Cohen <cohen@andy.bu.edu> 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 <nick@ing-simmons.net> 1998-02-28 11:31:15
Missed FREAD in bytecode.h
Cannot export svref_mutex in non-threaded perl
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 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 <gsar@cpan.org> 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 <gsar@cpan.org> 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 <mbeattie@sable.ox.ac.uk> 1998-02-25 17:44:34
More compiler tweaks.
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 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 <mbeattie@sable.ox.ac.uk> 1998-02-20 18:05:33
Move lib/B/... and lib/[BO].pm over to where they should be,
under ext/B.
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 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 <mbeattie@sable.ox.ac.uk> 1998-02-20 16:42:13
* Merge perlext/Compiler/... into mainline. Some files move to
ext/B/..., some to lib/B/..., O.pm and B.pm 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 <mbeattie@sable.ox.ac.uk> 1998-02-20 16:39:38
* [compiler] Win32 changes from Sarathy, tweaked slightly by me.
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 1998-02-17 17:50:50
* Assorted changes to the compiler
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 1997-12-17 10:59:40
* Fix typo in compiler B/C.pm.
Alpha5 Malcolm Beattie <mbeattie@sable.ox.ac.uk> 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 <mbeattie@sable.ox.ac.uk> 1997-09-03 12:31:48
* Make compiler build/work with devel 5.005
Malcolm Beattie <mbeattie@sable.ox.ac.uk> 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 <mbeattie@sable.ox.ac.uk> 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 <mbeattie@sable.ox.ac.uk> 1997-05-03 14:47:06
* initial check in of compiler
from version Alpha a3 to a4