The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

BcVersions - ByteLoader bytecode versions

DESCRIPTION

Reference of tables of Asmdata files per perl - ByteLoader version.

5.005 had no ByteLoader VERSION. 5.005008 had 118 bytecodes, but no ByteLoader module and no header.

5.6 removed and added some opcodes.

With 5.8 several bytecodes were changed in the middle, and the number changed from 120 (5.008000) to 150 (5.008009).

With 5.10 it is not in CORE anymore, bytecode numbering juggled in development releases, while stable releases follow the static bytecode policy. New bytecodes are only added to the end, discontinued ops are nop'ed.

Since the CPAN release 6 new ops were added: op_latefree, op_latefreed, op_attached, op_reflags, cop_seq_low, cop_seq_high.

perl     number blversion
5.005008 118    -    no header!
5.006000 117    0.03 no header!
5.006001 121    0.04 magic:32 "archname" "blversion" ivsize:32 ptrsize:32 "byteorder"
5.006002 120    0.04
5.008000 120    0.04
5.008001 150    0.05 magic:32 "archname" "blversion" ivsize:32 ptrsize:32
5.008002 150    0.05
5.008003 150    0.05
5.008004 150    0.05
5.008005 150    0.05
5.008006 150    0.05
5.008007 150    0.05
5.008008 150    0.06
5.008009 150    0.06
5.010000 156    0.07 magic:32 "archname" "blversion" ivsize:32 ptrsize:32 longsize:32 "byteorder" archflag:16 "perlversion"
5.010001 156    0.07
5.011000 156    0.07
5.011005 156    0.07
5.012000 156    0.07
5.012001 156    0.07
5.013004 156    0.07

ByteLoader:

  0.06_01: added byteorder 
	magic:32 "archname" "blversion" ivsize:32 ptrsize:32 "byteorder"
  0.06_03: added longsize  
	magic:32 "archname" "blversion" ivsize:32 ptrsize:32 longsize:32 "byteorder"
  0.06_05: added archflag  
	magic:32 "archname" "blversion" ivsize:32 ptrsize:32 longsize:32 "byteorder" archflag:16
  0.06_06: added perlversion
	magic:32 "archname" "blversion" ivsize:32 ptrsize:32 longsize:32 "byteorder" archflag:16 "perlversion"
  0.07:    same as 0.6_06

HOW TO

Create new versions:

  perlall=${perlall:-"5.6.0 5.6.1 5.6.2 5.8.0 5.8.0-nt 5.8.1 5.8.1-nt 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.8 5.8.8-nt 5.8.9 5.8.9-nt 5.10.0 5.10.0-nt 5.10.1 5.10.1-nt 5.12.0 5.12.1 5.13.4"}
  for p in $perlall
  do 
    #make -q clean
    perl$p Makefile.PL
    v=`perl$p -MConfig -e'printf "%1.6f", $]'|sed -e's,5.,5_,'`
    echo "perl$p $v"
    make lib/B/Asmdata.pm && sed -e"s,package B::Asmdata,package B::Asm$v," \
	<lib/B/Asmdata.pm >ByteLoader/BcVersions/Asm$v.pm
  done

In BcVersions/Asm5_0*.pm are all original Asmdata files from all previous releases, regardless of ITHREADs.

AUTHOR

Reini Urban <rurban@cpan.org> 2009.

SEE ALSO

B::Asmdata, ByteLoader, B::Bytecode, B::Assembler, B::Disassembler