[Vm-dev] Re: Numbered primitives in images
David T. Lewis
lewis at mail.msen.com
Sun Jan 17 22:42:13 UTC 2010
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.
More information about the Vm-dev