[M3devel] Pickles, TextLiterals, and word size
rcolebur at SCIRES.COM
Wed Jul 24 19:03:12 CEST 2013
Hendrik raises some good questions.
It would be great if "the fix" could be implemented in a way that either self-corrects for any pickles written prior to "the fix", or at least presents a run-time notification of a problem, but if this can't be done, I vote to go ahead with "the fix" and we will deal with it on a case-by-case basis.
I've written a fair amount of stuff that uses pickles to persist object data on secondary storage, so I will have to deal with that, but I think it is more important this problem gets solved.
Sent from my iPad
On Jul 24, 2013, at 11:34 AM, "Hendrik Boom" <hendrik at topoi.pooq.com> wrote:
> 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