Yes, this is exactly what I am suggesting.  I don't pretend that it is
possible for all former pickler versions.  But I think that backward
compatibility with version 3#3 of the pickler (Mozart 1.3.x) is feasible.

This requires a careful review of the diff between both versions of the
pickler.  This is not an easy task, since that part of Mozart is quite
low-level and a bit obscure (to me at least).  And one must make sure that
the compatibility test only applies to pickles.

Cheers,
raph

On Tue, Mar 3, 2009 at 10:13 AM, Torsten Anders <
[email protected]> wrote:

> On Mar 3, 2009, at 8:05 AM, Raphael Collet wrote:
>
>> On Mon, Mar 2, 2009 at 11:52 AM, Torsten Anders <
>> [email protected]> wrote:
>>
>> On Mar 2, 2009, at 9:34 AM, Raphael Collet wrote:
>> If I am not mistaken, all the stateless entities that can be copied across
>> sites are pickled just like in Mozart 1.3.2.  So I think that the pickler in
>> Mozart 1.4.0 is able to unpickle pickles made with Mozart 1.3.2.
>>
>> It appears this is not the case. Here is the error message which I get
>> when trying to load a pickle functor compiled with Mozart 1.3.* into Mozart
>> 1.4.0.
>>
>> %***************** Error: distributed programming ***************
>> %**
>> %** Version mismatch during loading of pickle
>> %**
>> %** File:                                         '/path/to/my/file'
>> %** Expected:                                     '4#0'
>> %** Got:                                          '3#3'
>> %** Pickle version 3#3 corresponds to Oz version: '1.3.0'
>> %** In statement: {<P/2 URL.load> '#'('/' [85 115 101 114 115] '/' [116]
>> '/' [111 122] '/' [109 117 115 105 99] '/' [83 116 114 97 115 104 101 101
>> 108 97] ,,,) _}
>> %**
>> %** Call Stack:
>> %** procedure 'Meth_load' in file
>> "/Users/bmejias/Mozart/mozart-1-4-x/mozart/share/lib/init/Resolve.oz", line
>> 61, column 3, PC = 5022388
>> %** procedure 'Do_Method' in file
>> "/Users/bmejias/Mozart/mozart-1-4-x/mozart/share/lib/init/Resolve.oz", line
>> 87, column 3, PC = 5023784
>> %**--------------------------------------------------------------
>>
>> We played it on the safe side, here.  There is a test on the version
>> number of the pickle, and we force it to match the one of the virtual
>> machine.  But in practice, the pickle format has not changed that much.  I
>> think I only added new types of pickled data.  I believe that unpickling
>> older pickles should be possible.
>>
>
> So, are you suggesting that loading older pickles into future newer
> versions could be made possible simply by changing this safety test to check
> that the loader pickle is older or equal the current version (but not
> newer)?
>
> Best
> Torsten
>
>
>
>>
>> Cheers,
>> raph
>>
>> <ATT00001.txt>
>>
>
>
> _________________________________________________________________________________
> mozart-users mailing list
> [email protected]
> http://www.mozart-oz.org/mailman/listinfo/mozart-users
>
_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to