As PBC files might be built from different core.ops aka core_ops.c, it 
is necessary to add a fingerprint to PBC files, to validate, that the 
interpreter uses the very same ops, when running the PBC.

- during "make" a fingerprint of core_ops.c is generated:
$ perl -pe's/\s//g' < core_ops.c | md5sum | cut -f1 -d' ' [1]
305c25a0a3fe675f7fdc5d323020eae2

- assemble.pl/packfile.c/packout.c  #include this checksum

- assemble.pl / imcc incorporate[2] this checksum in the PBC

- packfile.c verifies it during loading the PBC.

[1] replaced by Digest::MD5 for portability

[2]
a) increase the PackFile_Header by 16 or 32 bytes or
b) write this as a STRING into the first PackFile_Constant

Comments welcome,
leo

Reply via email to