Juergen Boemmels <[EMAIL PROTECTED]> wrote:
> Dan Sugalski <[EMAIL PROTECTED]> writes:

>> We should keep the fingerprinting, since we can still have an issue where
>> new bytecode can't run on old interpreters, but it's probably time to take
>> another look at how we set the fingerprint.

> If we want to keep the fingerprint it should be generated from the
> ops.num file,

Appending opcodes to ops.num doesn't break existing byte code. I'm
thinking of this: We have a new file named COMPATIBLE or such, and do a
MD5 sum over this file. Whenever we make an incompatible change that
breaks existing byte code, the change is documented in that file, which
automatically invalidates existing PBCs.

> ... and it should be moved out of the header.

Yes. I'm thinking of a Version PMC, living in the metadata.
VTABLE_is_same() could check, if Parrot's and the PBCs version aren't
conflicting. VTABLE_cmp() could compare if a loaded extension or module
is compatible. The Version PMC could hold a STRING or an Array of
STRINGs, that represent the version or version range(s).

Proposals for such version checking are very welcome.

> bye
> boe

leo

Reply via email to