B-C
view release on metacpan or search on metacpan
* C: reset PL_stack_sp on init (was one too far). no effects on code.
Implement global destruction via sv_clean_objs and my_curse on -O3, resp.
prepend static svs PL_sv_arenaroot for sv_clean_objs with a fake sv_list[0].
(#197, #208, #254, #280)
Call DESTROY methods for all our global static SVs (i.e. "global destruction"),
fixes #197, #280, #282
Increment GV->FORM refcounts as they cannot be destructed, analog to CV
Call PL_exitlist functions with -O3
Make the lexical cop_warnings pointer dynamic, because on cv_undef (scope exit,
assign, exit, die, ...) CvROOT and all its kids are freed, ignoring op_latefreed.
The content of the warning is still a static string - and leaks on perl, but
we don't care.
-fwarn-sv is now always set, just not with MSVC on Windows. The warnings are then
directly set, not in a tight loop afterwards, because the value is needed for
the dynamic init.
Fixed lexical warnings on 5.8 (pWARN_STD .. pWARN_NONE)
Improve -O4 by keeping all CvSTART cops
Keep internal packages if used in the source code, e.g. mro (#300)
Fix the order of PerlIO_cleanup, after global destruction (#302, #303)
Since 5.18 padlists are now all dynamic, due to undef issues in non-local exits (#304)
Add -fno-dyn-padlist to -O4 to keep static padlists on 5.18.
Dynamic padlists are needed to prevent from cv_undef crashes on static padlists
when cleaning up the stack on non-local exits, like die or exit or subs on the
compile stack as with Attribute::Handler (#169, #304). Previously only END block
function padlists were dynamic (#298).
Add run-time remap of compile-time XS symbols via dlsym (#305, RT #94069)
Net::DNS includes Encode::XS ascii_encoding, but also init the 3 other encoding ptrs.
Add a fast path for d_dlopen + i_dlfcn systems (i.e. Windows goes the slow init2 route)
Detect new Encode-2.58 which stores encodings better to handle proper
compile-time usage (#305, RT #94221)
Add special SV associations for $/, $@ and $\ (#306, #256)
Save @ISA for all included packages, esp. DynaLoader dependencies (#308)
Replace each %hash with foreach sort keys (#307)
Set ${^GLOBAL_PHASE} with -O3 for END and DESTRUCT (#197, #208)
Do not store invalid GvCV symbols, only cv or &sv_list entries (#313)
Support GvFORM pseudo CVs (B::FM objects) on 5.10 (#149)
Support local $/ = "somestring" (only used empty values before) (#314),
A regression from 1.43
Support local $\ = "somestring" (#318), also a regression from 1.43
Fix special 5.6. associations for $, $\ as they are no SVs there (#306)
Fix wrong caching of internal LEXWARN symbols (#322)
Warn on bad IO::Socket::SSL versions 1.956-1.983 which would SEGV if used as server (#317)
Support __DATA__ blocks in packages without printing wrong warnings (#310)
Support ->(maybe|next)::(method|can) mro method calls (#324, #301)
Support mro c3 (#316)
Support @- @LAST_MATCH_START, the array of the last submatches (#281, #220, #295)
Workaround a 5.18 de-optimization which disabled ++PL_sv_objcount on bless
by adding it if a DESTROY method exists. This will fail since 5.18 if DESTROY
is added at run-time. (#208, #197)
Add new init0 section to initialize -fppaddr ops before init, not afterwards. (#330)
Needed to call utf8::SWASHINIT at init with CALLREGCOMP and /i
Avoid duplicate PL_utf8_tofold ToCf swash initialization with 5.18 (#330)
* CC (1.15): Skip saving non-existing methods analog to B::C 1.43_06 (CC test 50)
Fix failing CopFILE_free and CopSTASH_free in END blocks with threads (#296, CC test 48)
Handle duplicate function names, like multiple END blocks or anon functions (#297)
Replace each %hash with foreach sort keys (#307)
* Bytecode (1.15): Replace each %hash with foreach keys (#307)
* Bblock (1.04): Do not pollute B::CC (find_leaders) with B::Concise
1.45 2014-02-11 rurban
* t/issue281.t: fix wrong test ($[ vs $])
1.44 2014-02-10 rurban
added adjusted CORE testsuite for 5.14. passes for 5.14.4-nt, not for 5.18.2-nt
(cPanel code_monkeys)
still missing in general are:
- global destruction (use lexicals!),
- attribute handlers,
- compile-time perlio layers
* C: Fix -O3 with ~ and ~~ formatstrings (#277)
Fix SvLEN and PV ptr for empty shared hash keys (#272)
Use the natural @dl_modules boot order, just put attributes to the front (#259)
Store cop_hints to support lexical numeric hints pragmas,
esp. use bytes and use open attributes
(fixes #81 #152 #174 #176 #180 #185 #224 #235 #238 #241 #245 #253 #255 #256 #277)
Skip saving defined(&cv) subs (#96)
Fix format STDOUT/STDERR (#238, #239, #277, #284, #285, #283)
Save now empty bodyless subs if they exist, for signal handlers,
prototypes declarations and cvrefs (#251, #159, #235, #246, #270, #271, #275, #279)
Fix PVMG PV overwriting the RV, overload sub (#273)
* CC (1.14): Skip saving non-existing methods analog to B::C 1.43_06 (CC test 50)
* perlcc (2.17): Accept -A for -DALLOW_PERL_OPTIONS
* t/testc.sh: Accept -A for -DALLOW_PERL_OPTIONS
1.43 2014-01-15 rurban
new 5.16, and partial 5.18, 5.20 and windows support.
Many more fixes and testcases.
Bytecode is still broken on 5.18, esp non-threaded. 5.20 looks pretty good though.
* C: Fix -u<module> without file extension.
With hek do not drop FAKE, only for const pv.
Fixed $$ ($PID) to be dynamic, issue 108. Thanks to flexvault for reporting this.
Fixed double precision to 16 digits. The nbody shootout test passes now.
Fixed refcounts of *ENV, issue 111.
Fixed wrong boot_ arg for the xs version check with --staticxs
Better fix for overwriting of @ARGV <O3, test c_argv:1 and c_allow_opts.t:1
Fixed refinition warnings of XS CONSTSUB. Ignore them as they are
loaded later.
Add $dlmodule::VERSION as 2nd arg to boot_$dlmodule resp. $dlmodule::bootstrap
to get rid of the pesky Invalid version format error in xs_version_bootcheck
if the $VERSION had already version magic attached. (no testcase, hard to repro)
perl 5.16.0 shipped a slightly broken B without cop_stashlen. As workaround
we do not support utf8 stashes nor null bytes in stashes on 5.16.0 threaded.
Fixed Null COP storage for 5.16 and 5.17
Fix amagic_generation which was removed with 5.17
Fix ALLOW_PERL_OPTIONS: add -e behind all processed options, not before
Fixed HvAUX init. Previously only with magic hashes, now on all OOK hashes (OOK+SHAREKEYS)
e.g. %warning::Bits
Added support for new PADLIST type since 5.17.4 (with xpadl_id) and 5.17.6 (without)
$^X returns now the real executable name, not just perl or perl.exe
Adjust COW string lengths to hold the COW_REFCNT byte at the end
Fix unicode string CUR and LEN (#142, #162)
Fix unicode hashkeys (HEK) mostly (#200), but not yet testc.sh 2001 (compile-time
stored utf8 heks)
Save HvTOTALKEYS at run-time as max added to the number of run-time added keys (#178)
Fix UV uvuformat on 32bit -Duse64bitint (#145)
op_pmreplstart is now run-time initialized >= 5.10 (#160)
Fixed special usage of magic vars @-,@+,%+,$-,$! (#90)
Fixed wrong REGEXP length for compiled QR data (#143)
Fixed wrong -O3 comparison of strings to numbers (#138,#141, branch new-cog), unified
Fixed wrong stash names in gv_stashpv analog to gv_fetchpv
(Text-Tabs+Wrap t/dandv.t)
* t/testm.sh: implement -s without log file
* t/modules.pm: export skip_modules, silence module scanning STDERR
1.23 2010-02-14 rurban
* t/testm.sh: chmod +x
* t/modules.t: fix $have_IPC_Run
1.22 2010-02-14 rurban
Tested with ActivePerl 5.10.0
* bytecode.h: unshare_hek exception for WIN32, not only MINGW
* t/modules.t: Added list of to be skipped modules, which cycle endlessly.
Improve todo message.
* t/testm.sh: add option -s "install skipped modules"
* Makefile.PL, cc_harness, perlcc: fix ldflags for ActivePerl 5.10.0
for MSVC6 (ccversion 12) -opt:ref,icf leads to invalid outfile "pt:ref,icf"
* c+cc test 29 fails on 5.10 randomly. Make it a TODO
1.21 2010-02-14 rurban
* C.pm: Add missing Nullop for CC on 5.11.4 (cc 12).
Test 38 passes
1.20 2010-02-14 rurban
* C.pm: #define PERL_CORE broke Null macros on 5.11.4. Define those.
1.19 2010-02-13 rurban
Almost fixed evaltry (12) with proper cop_seq setup, just solaris and debian
fail sometimes. Tested ok with strawberry 5.10.1
* C.pm: fixed evaltry (test 12) mostly, NVX was shared with 2 xpad_cop_seq ints
which accidently just worked before 1.17 with %s, but not after changing
to the %g representation.
Ignore unused random (overlong) xpviv IV, causing
"warning: this decimal constant is unsigned only in ISO C90"
Defer rv => cv to run-time < 5.10. Fixes ExtUtils::Install
Defer xpvmg->pv init to run-time < 5.10. Fixes MooseX::Types
Check for NV inf. Fixes compilation of DateTime
Defined PERL_CORE: Fxied Windows problems with setjmp undef'ed in XSUB.h
Added Win32 workaround for missing PL_do_undump
Stripped perl_ prefix from perl_get_cv, perl_call_pv, perl_call_method
* CC.pm (1.07): added -fslow-signals.
Disabled inlined pp_enter: Fails on empty cxstack.
Backed out inlining of enterloop: GIMME_V fails on freebsd7
Remove strawberry PerlProc_setjmp definition, #define PERL_CORE fixed that
* Bytecode.pm (1.06): same NVX => xpad_cop_seq fix as in C.pm, added 2 new
bytecodes (cop_seq_low, cop_seq_high), fixed tests 9,10,12. Passes
all tests > 5.6 now.
* bytecode.pl: added cop_seq_low (155), cop_seq_high (156) instead of xnv.
No conversion code for loading older bytecode needed, but fragile (double => 2 int)
* t/modules.t: refactored by Todd Rinaldo (toddr). 4*tests per module:
-s a, exitcode 0, ok, no warnings on stderr
* t/TESTS: added 38, failing on CC (Nick Koston).
added 39, failing everywhere.
* t/test.pl: refactor: Try to timeout on all tests (compiler and exec) if
IPC::Run is installed
* MANIFEST, *.pod: Moved conference pods to ramblings,
removed lib/B/Asmdata.pm again, added t/qr_loaded_module.pm
* t/testm.sh, t/modules.pm: added, -t not working yet though
* t/b.t: $[ => $]
1.18 2010-02-06 rurban
evaltry (test 12) still broken on most systems.
* C.pm, C.xs: fixed r-magic for 5.6 (ExtUtils::Install,
File::Temp, Template::Stash). need tests for run-time checks (33).
5.6 misses MG->pregcomp
* t/modules.t: check for a.out (test from toddr)
* Makefile.PL: create lib/B/Asmdata.pm beforehand (toddr)
* ByteLoader: fixed duplicate + missing bl_header for bsd and Darwin
(test from toddr)
* test 37 added - AV self-refs, analog to HVs (never failed, just to
be sure).
Removed -qq from 5.6 tests.
1.17 2010-02-03 rurban
Fixed now most module failures, non-threaded at least: bootstrap was in
the way. strawberry perl fixes. Fixed test 29, broke evaltry test 12
* C.pm: Added option -Dfull for all full debugging info, set all options.
Skip saving XS bootstrap. Fixes most XS module failures. i.e.
Digest::MD5, Data::Dumper, ..
Fail: Attribute::Handlers, B::Hooks::EndOfScope, YAML, MooseX::Types
4 for 5.8.9-nt from the top100, and 3 for 5.11.4-nt: Attribute::Handlers,
File::Temp, ExtUtils::Install.
Fixed AV self-references causing endless loops, analog to HVs (test 27)
Fixed Getopt::Long crash with AV D magic (regdata),
save_magic returns now the magic types as string.
Fixed unescaped savere (test ExtUtils::Install).
Fixed GvSTASH "initializer element is not constant" (Test::Harness)
Fixed xrv_list "initializer element is not constant" (Class::MOP < 5.10)
* CC.pm (1.06): Added missing unexported definitions for MSWin32,
>=5.10: newGP, vivify_ref, prepare_SV_for_RV (tests 18, 29).
PerlProc_setjmp, PerlProc_longjmp (tests 12, 32).
Fixed cxinc for 5.11.0
* t/bytecode.t: mixed up 32 with 33.
* t/modules.t, t/top100: new module test, see also the log.modules*
results in the svn repo.
* t/mymodules: added as reference, executed optionally.
* script/cc_harness: ldopts -std if no -B<opt>
1.16 2010-01-27 rurban
use Moose and benchmark still fails. IO even a regression.
* C.pm: Fixed braces warning for empty xpvcv startfield (Nullany),
register int for warn_sv loop
Fixed hv init for magic hashes, pre-allocate array and xpvhv_aux. (test 34)
Fixed method_named (CPAN #53889, test 35) for B::C, better fix than for B::CC.
Added -DH for HV debuggging.
Fixed HV self-references causing endless loops, i.e. with use Moose, test 36.
* CC.pm (1.05): added experimental -finline-ops. Always on. Can be removed if
it works okay for the new inlined versions.
Inlined pp_enter, pp_reset, pp_regcreset, pp_stringify.
Fixed pp_padsv DEREF for 5.10.
Documented test coverage for each op.
Fixed wrong $PERL511 definition.
Added Opcodes support (no_stack), on CPAN as 0.01.
added pp_pushmark pp_break pp_continue to no_stack handling.
Fixed method_named (CPAN #53889, test 35) assuming there is only const
before method_named. No counter examples found so far.
( run in 1.719 second using v1.01-cache-2.11-cpan-13bb782fe5a )