[M3devel] Pickles, TextLiterals, and word size

Hendrik Boom hendrik at topoi.pooq.com
Wed Jul 24 17:34:47 CEST 2013

On Wed, Jul 24, 2013 at 09:10:31AM -0500, Rodney M. Bates wrote:
> There is what I would call a bug in TextLiteral.i3 whose effect is that a
> TextLiteral.T has a different fingerprint on 32- and 64-bit machines.
> So you can't pickle a Text literal on one word-sized machine and unpickle
> it on the other.
> But fixing this will have the effect of invalidating any existing pickles
> written on a 64-bit machine before the fix, so they can't be read after
> the fix, even on a 64-bit machine.  They would have to be rewritten after
> the fix.

Ah!  The problems of long-term compatibility!

Is there any way of looking at a a pickle and determining whether it 
comes from a 32- of 64- bit machine?

It there a way of special-casing the specific fingerprint that's about 
to be invalidated, so as to convert it properly on input only, while 
generating the new one on output?

> Is anybody doing the latter?  Would having to recreate your pickles be a
> problem?  Apparently, nobody is going cross-word-size, or we'd have heard
> about it.
> I would like to fix it properly, but don't want to undermine anybody's
> working system.

More information about the M3devel mailing list