12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- * 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/testm.sh 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
- NV overflow initialisation analog to ivx (ExtUtils::CBuilder)
- 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. How-perl-compiles-subs-and-methods.md
- detect typed objects (my Class $obj = new Class;)
- 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)
|