[Vm-dev] Re: Numbered primitives in images

Eliot Miranda eliot.miranda at gmail.com
Mon Jan 18 18:23:11 UTC 2010


On Sun, Jan 17, 2010 at 2:42 PM, David T. Lewis <lewis at mail.msen.com> wrote:

>
> On Sun, Jan 17, 2010 at 08:02:23PM +0100, Bert Freudenberg wrote:
> >
> > IIUC the unix 3.10-5 VM is still okay and 3.10-6 changed this. We're
> sort-of
> > lucky that the latest VM package in Fedora is still 3.10-5 (meaning the
> new
> > OLPC OS will still support Scratch) but it is unfortunate that a minor
> version
> > would break this. At least I wasn't aware the closure support does break
> > backwards compatibility, and apparently Ian neither, or he would have at
> > least made the change in 3.11 (if not 4.x).
>
> Agreed, and with hindsight I'm sorry that I did not communicate the extent
> of the changes more clearly. Although to be clear, it was a mistake: I did
> not expect that the closure changes would break compatibility with a 2.5
> based image, because the primitives indices that we removed had been marked
> obsolete for at least five years.
>
> By way of preventing recurrence, the new VM version numbering approach that
> Ian has since adopted may help prevent this kind of misunderstanding. The
> version number is now based on VMMaker versionString combined with the
> Subversion version number, so for example in the case of the closures
> changes,
> the VM version would have gone from 3.9.5-nnnn to 3.10-nnnn (and yes, I
> should
> have made it 3.10.0 rather than 3.10, I'll keep that in mind in the
> future).
>
> Maintaining backward compatibility as we move towards COG or other VM
> enhancements is going to be a challenge, and we'll have to do this
> carefully with an eye towards supporting a rather diverse installed base
> of Squeak images.
>

The move to Cog will break backward-compatibility with all pre-closure
images as the Cog VM only runs closures. It does not and cannot easily
support old BlockContext-based images.  So the issue of
backward-compatibility is moot.

The issue is thus one of forward migration.  Applying the closure bootstrap
is not an easy process but is one that has been done by others; Juan
Vuletich migrated Cuis to closures without any help at all; most impressive.
 With a bit of polish an up-to-date version of the bootstrap should be able
to take images forward without too much effort.  One needs a VM that runs
both closures and old BlockContext, i.e. one of the current clutch of
pre-Cog VMs.  One needs a bootstrap that has been updated with the relevant
bug-fixes.

best
Eliot


> Dave
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100118/2c81d21a/attachment.htm


More information about the Vm-dev mailing list