<div dir="ltr">Wow, amazing! Thanks so much!</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 30, 2016 at 9:05 PM, Juan Vuletich <span dir="ltr">&lt;<a href="mailto:JuanVuletich@zoho.com" target="_blank">JuanVuletich@zoho.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi Eliot, Folks,<br>
<br>
Eliot and I have been been working a bit, over some time, to make Cuis compatible with the Spur VMs. We prepared together the changes required to make the Cuis image ready for the Spur bootstrap process (also used for Newspeak, Squeak and Pharo). Eliot made any necessary changes to the Spur bootstrap to also handle Cuis. (Eliot, you might want to give additional details on what was required here?).<br>
<br>
The result of the Spur bootstrap was a Cuis image that could start, but could do little else. Compiler and Decompiler were broken, so fixing was hard.<br>
<br>
Then I came with the idea of doing the same I did when converting Cuis to Closures: Have two Compilers loaded, and switch between them easily. So, I added the necessary changesets to the &quot;PreSpurBootstrap&quot; stage, adding a verbatim copy of Squeak&#39;s Compiler, and making it active. The result of the Spur bootstrap was now a Cuis image that could not only start, but also browse and modify code. There were still many rough edges, but now they can be fixed from within the image, as we usually do. I fixed the most obvious ones, as part of &quot;PostSpurBootstrap&quot;.<br>
<br>
The resulting image is available at <a href="https://www.dropbox.com/sh/45vub8hnq1riq10/AADDKBWsIvPfUNqjuz91PW7Ra/CuisSpurPreview?dl=0" rel="noreferrer" target="_blank">https://www.dropbox.com/sh/45vub8hnq1riq10/AADDKBWsIvPfUNqjuz91PW7Ra/CuisSpurPreview?dl=0</a> . The &quot;PreSpurBootstrap&quot; and &quot;PostSpurBootstrap&quot; changesets are there too, meaning that anybody can reproduce the procedure, and suggest fixes and enhancements.<br>
<br>
This is not yet good enough to be added to the Cuis update stream. These are some of the things that are missing:<br>
<br>
- Merge both Compilers into just one, that handles Cuis specific details correctly, but also includes any updates required for Spur.<br>
<br>
- Check Decompiler. Decompile and recompile the code for all the system.<br>
<br>
- Make the very same source code for the whole system work both for V3 and Spur images. To build the Spur Cuis image, at the correct update number, the image is converted to Spur, and then run with a Spur VM, and the following updates are applied. To build a V3 image, the image is never converted to spur, and the very same updates are applied, always running with a non-Spur VM. This is not currently working, but I think it is possible, and allows both Spur and non-Spur Cuis images without forking.<br>
<br>
- Check that optional packages work.<br>
<br>
- Enable SmallFloat64, both as result of arithmetic, but also as literals in methods.<br>
<br>
- Many details I&#39;m not remembering right now, or I&#39;m not aware of.<br>
<br>
Eliot, let me than you for your wonderful work on Cog, Spur and Sista, for supporting Cuis along with the other OpenSmalltalk systems, and for guiding and encouraging me to keep Cuis up to date with latest VM technology.<br>
<br>
Cheers,<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Juan Vuletich<br>
<a href="http://www.cuis-smalltalk.org" rel="noreferrer" target="_blank">www.cuis-smalltalk.org</a><br>
<a href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" rel="noreferrer" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a><br>
@JuanVuletich<br>
<br>
<br>
</font></span></blockquote></div><br></div>