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
