<br><br><div class="gmail_quote">On Sun, Jan 17, 2010 at 2:42 PM, David T. Lewis <span dir="ltr">&lt;<a href="mailto:lewis@mail.msen.com" target="_blank">lewis@mail.msen.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

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

<div><br></div><div>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.</div>
<div><br></div><div>best</div><div>Eliot</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Dave<br>
<br>
</blockquote></div><br>