B-C-1.04_15

rurban on 2008-04-12T11:21:08

After busy weeks moving house and attending the local film-festival, work started again.

I've added machinery to support Bytecode portability and maybe across versions also. This will need some opcode version table for older versions.

Thanks to cpantest I've found and fixed some non-threaded bugs.

The main feature with this version is the commented disassembler output.

The main problem was that in the ByteLoader xpv_len is not the length of xpv_pv string. xpv_len also counts the ending \0 byte, but xpv_cur is the correct strlen. So "\\d\000" has length 3, but a strlen of 2. This caused problems on an early 5.10 pregcomp() minlen check, so all regexp tests failed.

I've also added a maxstring argument to asciiz strconst strings, which are no pascal-like strings, to avoid buffer-overflow attacks with handcrafted .pmc files.

Next I'll attack the pad panics and SIGSEGV in Perl_fbm_instr() <= Perl_re_intuit_start() <= Perl_pp_subst() Getting the correct re in the PMOP to be accepted by pp_match() is a nightmare.