Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

55 lines (47 sloc) 2.448 kB
* Fixes
-DF Flags crashes with newpkg
do not throw away non-B:C loaded packages not to miss run-time added methods ('all_bc_pkg')
'n' magic (shared_scalar on 5.10.0 and earlier perls) e.g. t/ Test::Tester
run-time label lookup (done for the easy and documented limitations)
store_cop_label for 5.12 windows/AIX only (=> p5p; needs CORE patch)
CC backend: goto (needs test),
improve XSUB handling (perlcc, both static and dynamic, needs tests)
sv_magic can do SvREFCNT_inc(obj) which messes up precalculated refcounts
allocation of XPV[INAHC]V structures needs fixing: Perl tries to free
them, whereas the compiler expects them to be linked to a xpv[inahc]v_root
list the same as X[IPR]V structures.
ref counts
perl_parse replacement
CvOUTSIDE for ordinary subs
* Features
Detect ExtUtils::Constant autoloaded "Your vendor has not defined"
functions stubs. E.g. "WARNING: &Socket::AF_DATAKIT not found"
optimize static or typed method calls.
detect typed objects (my Class $obj = new Class;) (partially done)
modularize (-m) for faster link times
BEGIN goto optim: skip code after BEGIN goto
usually Carp including B in some AUTOLOAD block, issue 61
save PMOPs in compiled form (?)
options for cutting out line info (COP elimination) etc. (fix -fcop)
check Bytecode op coverage in the tests, should cover all ops 0-142
ByteLoader compatibility: version, platform. eventually Bytecode version
portability (test with 5.6 on cygwin, partially done)
check CC op coverage, add tests
* Optimizations
collect static strings beforehand, such as GvNAMEs, COP FILENAME (for pre 5.10)
and GV method names package::name. (partially done)
proper static init of PMOP SV's (only works dynamic >= 5.10)
collapse LISTOPs to UNOPs or BASEOPs
compile-time qw(), constant subs
variable types: global analysis of variables, type hints etc.
understand type decl and attrs
my int $i; my $j : int;
Devel::TypeCheck instead of magic variable _ir, ... suffices
e.g. mark IVonly SV's and magic/flags change functions and
optimize all op subtrees for the compiled backends to use direct ints.
understand MooseX::Method::Signatures and MooseX::Lexical::Types declarations
demand-loaded bytecode (leader of each basic block replaced by an op
which loads in bytecode for its block)
fast sub calls for CC backend
tailcall optimization (entersub -> leavesub => goto)
inline functions and methods
Jump to Line
Something went wrong with that request. Please try again.