<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'><div>Hi Guys,<br></div><div><br></div><div>Here is my take on thinking about the Squeak Virtual Machines.</div><div><br></div><div>There are 3 iterations (plus the funky-stuff Eliot is adding to Cog, which I ignore here)</div><div><br></div><div>1. Standard Virtual Machine&nbsp;</div><div>2 &nbsp;Stack Interpreter &nbsp;(first iteration of Cog work)</div><div>3. Cog. (plus all stuff Eliot is doing on top of that).</div><div>4. Spur is coming up so we ignore for now.</div><div><br></div><div><br></div><div>I use the following terminology to refer to VM word size x Image Size</div><div><br></div><div>a. 32x32 = &nbsp;32 bit vm word size and 32 bit image&nbsp;</div><div>b. 32x64 &nbsp;= 32 bit vm word size and 64 bit image (can hold more objects)</div><div>c. 64x32 &nbsp;= 64 bit vm word size and 32 bit image</div><div>d. 64x64 &nbsp;= 64 bit vm word size and 64 bit image</div><div><br></div><div><br></div><div>Then,&nbsp; there is the distinction of the computer itself and its libraries.</div><div><br></div><div>X. 32 bit machine</div><div>Y. 64 bit machine</div><div>Z. 64 bit machine with 32 bit compatibility libraries.</div><div><br></div><div><br></div><div>Finally, there is the distinction of build tools: &nbsp;</div><div>VMMaker&nbsp;</div><div>VMaker-oscog &nbsp;(used by Pharo team only)</div><div>VMMaker.oscog</div><div>(Coming up is CMakeVMMaker)</div><div><br></div><div><br></div><div>Standard Virtual Machine &nbsp;supports 32x32,32x64,64x32 and 64x64 &nbsp;on 32 bit machine 64 bit machine and&nbsp;64 bit machine with 32 bit compatibility libraries and uses VMMaker. I covered this in a series at my blog timmydosmalltalk.wordpress.org</div><div>Stack Interpreter only support 32x32 on&nbsp;32 bit machine and&nbsp; 64 bit machine with 32 bit compatibility libraries and uses VMMaker.oscog&nbsp;</div><div>Cog&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;only support 32x32 on 32 bit machine and&nbsp; 64 bit machine with 32 bit compatibility libraries and uses VMMaker.oscog&nbsp;</div><div><br></div><div><br></div><div>With Spur, Eliot will have Cog running a 64x32 capability--i.e. native 64 bit vm with 32 bit image.</div><div><br></div><div>My personal dev goal is to port Stack Intepreter to 64x32 followed by 64x64.</div><div><br></div><div>Hope that helps.</div><div><br></div><div><br></div><div>tty</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div id="1"><br>---- On Fri, 16 May 2014 01:36:50 -0700 <b>Esteban Lorenzano&lt;estebanlm@gmail.com&gt;</b> wrote ---- <br></div><br><blockquote style="border-left: 1px solid #0000FF; padding-left: 6px; margin:0 0 0 5px"> <div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On 16 May 2014, at 10:27, <a href="mailto:phil@highoctane.be" target="_blank" mailid="phil%40highoctane.be" subj="">phil@highoctane.be</a> wrote:</div><br><blockquote type="cite"><div dir="ltr"><div><div><div dir="ltr">On Fri, May 16, 2014 at 10:20 AM, Esteban Lorenzano <span dir="ltr">&lt;<a href="mailto:estebanlm@gmail.com" target="_blank" mailid="estebanlm%40gmail.com" subj="">estebanlm@gmail.com</a>&gt;</span> wrote:<br> </div></div><div><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br> On 15 May 2014, at 18:46, Hilaire Fernandes &lt;<a href="mailto:hilaire.fernandes@gmail.com" target="_blank" mailid="hilaire.fernandes%40gmail.com" subj="">hilaire.fernandes@gmail.com</a>&gt; wrote:<br> <br> &gt; Great.<br> &gt;<br> &gt; As we are discussing about build, is it possible to compile CogVM on 64<br> &gt; bits architecture as it is already the case for the interpreted SqueakVM<br> &gt; (<a href="https://packages.debian.org/sid/squeak-vm" target="_blank">https://packages.debian.org/sid/squeak-vm</a>)?<br> <br> I do not understand. To compile a regular vm in a 64bits platform is trivial. You just need to have the 32bits library installed.<br> But to have a 64bits vm that runs on 64bits… that’s another very different history:<br> <br> - you need a 64bits image (so trace, export, etc.)<br></blockquote><div><br></div><div>ImageTracers are intriguing to me :-) Is this in some way relatable to Oz? What's that project doing now? It was very interesting/useful. Guille?</div> <div>&nbsp;</div><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> - you need to be 64bits word size aware (not so complicated, but a lot of work).<br> - you need 64bits plugins (a lot of them)<br> - you need 64bits JIT (or no JIT at all)<br> <br></blockquote><div><br></div><div>And...</div><div><br></div><div>* 64-bit aware hashing functions as the current ones are 32-bit centric. So, not so trivial I'd say. (what's the plan?)</div><div><br></div><div> * special care of the Float which will be directly in a 64 bit "oop" - I guess we'll face some fun here. Especially with the float plugin.&nbsp;</div></div></div></div></blockquote><div><br></div><div>yes, the plan is to introduce SmallFloat, etc.</div><div>So, in summary: a lot of work :)</div><br><blockquote type="cite"><div dir="ltr"><div><div><div><br></div><div>As a side note, I see that&nbsp;<a href="http://www.mpfr.org/" target="_blank">http://www.mpfr.org/</a> is supported by INRIA. WTF aren't we considering this ? LGPL and INRIA may help getting some special thing for Pharo.</div> <div><br></div><div>Phil</div><div>&nbsp;</div><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> Some time ago there was an experimental 64bits interpreter vm (not even stack). Who worked with a special traced image.<br> What squeak guys are doing in the link you provide is still building a 32bits vm.<br> <br> Now. In the agenda for this year is to work on a 64bits spur version. If everything is fine and the stars align properly, it will be ready around christmas.<br> <br> Esteban<br> <br> <br> &gt;<br> &gt; Hilaire<br> &gt;<br> &gt; Le 15/05/2014 18:24, Esteban Lorenzano a écrit :<br> &gt;&gt; so yes… I integrated the fix, created a pull request, waited until validation… and then I forget to merge :S<br> &gt;&gt; it should be in process to build now.<br> <span><font color="#888888">&gt;<br> &gt; --<br> &gt; Dr. Geo <a href="http://drgeo.eu/" target="_blank">http://drgeo.eu/</a><br> &gt;<br> &gt;<br> <br> <br> </font></span></blockquote></div><br></div></div> </blockquote></div><br></div></blockquote><br></div></body></html>