petdance/scratch — Issue #542: enable UUID for pbc
Author: petdance
Created: 2011-11-14 06:11:44+00:00
State: open
Labels: core, Pri-normal, Sev-medium, todo

With r36890 I've enabled UUID stamping of pbc's for the t/native_pbc/ tests. tools/dev/pbc_header.pl --upd works now again.
In order to enable UUID's (uuid_type=1) for all PBC's I plan the following:

- read the UUID, the md5 fingerprint of PBC_COMPAT with Parrot::BuildUtils::generate_pbc_fingerprint() at Configure.pl

- uuid_size = 12, so that the new padding in the header will be 2 instead of 14 and the header size before the directory stay the same.

- store the pbc_fingerprint as PBC_UUID in config.h for packfile.c

- write every pbc with this UUID

- check the UUID when reading pbc's and warn
when reading incompatible PBC's, different UUID's.

- error on reading newer bytecode versions,
allow reading older versions. That was the original
intention at least.

Originally http://trac.parrot.org/parrot/ticket/359 by rurban (@rurban)