<!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;'>Cool.<br><br>One more thing to clarify: does running the simulator require having Bochs installed? (From what I can see, yes, but its not clear from your instructions here: <a href="http://www.mirandabanda.org/cogblog/build-image/" target="_blank">http://www.mirandabanda.org/cogblog/build-image/</a>&nbsp; )<br><br>Finally, here is my game-plan.<br><br>1. I am going to finish my overview of the Blue Book Object Memory etc and NOT go into a study of the details in the last chapters of part 4--I will refer back to it when needed to understand a specific situation.<br>2. Get Bochs running on a 32 bit capable slackware linux&nbsp; <br>&nbsp;&nbsp; (My bochs install on my 32 bit capable Slackware dies because of a bug in binutils-22. Slackware has a new 14.1 release out with the updated binutils, so hopefully I can get squeak/bochs running together on linux. it installs fine on my pure 64 bit boot. chicken,egg...)<br>3&nbsp; Verify that me not having installed Bochs is why I could install your Cog dev environment but not be able to launch the simulations.<br>4. I will then study the Stack VM and try to replicate what you did with Stack VM in 64 bits on Spur using the steps you posted a few weeks ago:<br><br><blockquote style="border: 1px solid rgb(204, 204, 204); padding: 7px; background-color: rgb(245, 245, 245);"><div><div>Read the latest two articles on my blog (<a href="http://www.mirandabanda.org/cogblog/2013/09/05/a-spur-gear-for-cog/" target="_blank">A Spur gear for Cog</a>&nbsp;&amp;&nbsp;<a href="http://www.mirandabanda.org/cogblog/2013/09/13/lazy-become-and-a-partial-read-barrier/" target="_blank">Lazy Become</a>).</div> <div>Make a VMMaker image (see e.g.&nbsp;<a href="http://www.google.com/url?sa=t&amp;rct=j&amp;q=create%20a%20cog%20vmmaker%20image&amp;source=web&amp;cd=1&amp;cad=rja&amp;ved=0CCsQFjAA&amp;url=http%3A%2F%2Fwww.mirandabanda.org%2Fcogblog%2Fbuild-image%2F&amp;ei=sQp8UsnDL8GLjALn6oDICQ&amp;usg=AFQjCNHoDMjPg2Sy7huxuOSDrTIyHo_RNw&amp;sig2=s3vx6j1rl73gdHq37BMiiQ&amp;bvm=bv.56146854,d.cGE" target="_blank">Cog Blog :: Building a Cog Development Image</a>).</div> <div>Then read SpurMemoryManager, /especially/ its class comment.</div><div>Then read its subclasses&nbsp;Spur32BitMemoryManager (functional) &amp;&nbsp;Spur64BitMemoryManager (completely untested).</div><div>Then read&nbsp;SpurBootstrap32.</div> <div>Try and create a 32-bit Spur image and run it.</div><div>Then try and implement&nbsp;SpurBootstrap64.</div><div>Try and create a 64-bit Spur image and run it.<br></div><div><br></div>&nbsp;</div></blockquote><br><br>Sound like a plan?<br><br>thx.<br><br>tty<br><br><div id="1"><br>---- On Wed, 27 Nov 2013 11:21:19 -0800 <b>Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</b> wrote ---- <br></div><br><blockquote style="border-left: 1px solid #0000ff; padding-left: 6px; margin:0 0 0 5px"><div dir="ltr">Hi tty,<br><div><br><br><div>On Wed, Nov 27, 2013 at 9:19 AM, gettimothy <span dir="ltr">&lt;<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@zoho.com</a>&gt;</span> wrote:<br> <blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u><div><div style="font-size:10pt;font-family:verdana,arial,helvetica,sans-serif">Oops, I posted to squeak-dev instead of vm-dev. I have added a CC so we can continue there if you wish.<br> <br>Ahhhh, I see what's going on now, its an incremental approach..makes sense now.<br></div></div></blockquote><div><br></div><div>Yes. &nbsp;Qwaq got something faster sooner. &nbsp;The phone folks got a faster VM that doesn't require a JIT (see StackVM on Android, iPhone etc). &nbsp;I got a simpler simulator for Spur. &nbsp;Lots of advantages.</div> <div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:verdana,arial,helvetica,sans-serif">Smalltalk-80 VM (Blue Book) -&gt; Squeak VM (OE-Tour.pdf)-&gt;Stack VM (<a href="http://www.mirandabanda.org/cogblog/2009/01/14/under-cover-contexts-and-the-big-frame-up/" target="_blank">http://www.mirandabanda.org/cogblog/2009/01/14/under-cover-contexts-and-the-big-frame-up/</a>)-&gt;Cog (JIT, Stack To Register Mapping, ..<a href="http://www.mirandabanda.org/cogblog/about-cog/" target="_blank">http://www.mirandabanda.org/cogblog/about-cog/</a>)<br> -&gt;Spur (changing the garbage collector and the object representation) -&gt;Lazy Become (<a href="http://www.mirandabanda.org/cogblog/2013/09/13/lazy-become-and-a-partial-read-barrier/" target="_blank">http://www.mirandabanda.org/cogblog/2013/09/13/lazy-become-and-a-partial-read-barrier/</a>)<br> <br><br>From your post here: <a href="http://www.mirandabanda.org/cogblog/2008/12/12/simulate-out-of-the-bochs/" target="_blank">http://www.mirandabanda.org/cogblog/2008/12/12/simulate-out-of-the-bochs/</a> I gather you used the StackVM with Alien and Bochs as your base to build the JIT for Cog .<br> </div></div></blockquote><div><br></div><div>That's right.</div><div>&nbsp;</div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:verdana,arial,helvetica,sans-serif"> So then, in an earlier response to my inquiry on the ~$1,000,000 bounty for cmakeifying the process thread, you wrote <br><blockquote style="border:1px solid rgb(204,204,204);padding:7px;background-color:rgb(245,245,245)"> <div>...then you could instead have a go at getting the Stack VM  working in 64-bits, and that would involve getting the 64-bit VM  simulator working in VMMaker. <br></div></blockquote>Which makes sense. Basically, I would be doing a 64 bit version of follow the leader on your existing 32 bit work where it should all come together at Spur.<br> <br>Does that sound about right?<br></div></div></blockquote><div><br></div><div>Exactly right. &nbsp;With the StackVM simulator you can get a 64-bit Spur memory manager working. &nbsp;Then you can get an x86-64 code generator going with the Cog VM simulator.</div> <div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:10pt;font-family:verdana,arial,helvetica,sans-serif">tty<br><br><div>---- On Wed, 27 Nov 2013 08:47:03 -0800 <b>Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</b> wrote ---- <br> </div><div><div><br><blockquote style="border-left:1px solid #0000ff;padding-left:6px;margin:0 0 0 5px"><div dir="ltr"><br><div><br><br><div>On Wed, Nov 27, 2013 at 8:05 AM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt;</span> wrote:<br>  <blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Wed, 27 Nov 2013, gettimothy wrote:<br> <br> <blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> I am confused as to what the term 'Stack VM' refers to.<br>  </blockquote> <br></div> "The StackInterpreter is an intermediate step after closures and before the JIT to ensure steady progress and on-time delivery of a substantially faster VM. The essential point, of course, is that a stack organization suits the use of native call and return instructions whose use, along with in-line cacheing techniques, substantially improve send and return performance." - <a href="http://www.mirandabanda.org/cogblog/2009/01/14/under-cover-contexts-and-the-big-frame-up/" target="_blank"></a><a href="http://www.mirandabanda.org/" target="_blank">http://www.mirandabanda.org/</a><u></u>cogblog/2009/01/14/under-<u></u>cover-contexts-and-the-big-<u></u>frame-up/<br>  <br> I would say it's a CogVM without a JIT.</blockquote><div><br></div><div>Exactly. &nbsp;Another way of saying it is that the StackVM is an interpreter that doesn't use contexts. &nbsp;Instead it uses stack frames, much like a conventional language implementation. &nbsp;And remember "doesn't use contexts" doesn't mean "doesn't have contexts"; instead context objects are created when the program asks for them instead of on every send. &nbsp;The StackVM's performance is about 1.5x the Context Interpreter VM. &nbsp;The Cog VM is about 5x the Context Interpreter VM.</div>  <div><br></div><blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span><font color="#888888"> Levente</font></span><div><div><br> <br> <blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  &gt; Here is the outline I have. &gt; &gt; Smalltalk VM = Blue <br> </blockquote> Book &gt; Squeak VM&nbsp;&nbsp; = Tim Rowledge's OE-Tour.pdf<br> <blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">  Stack VM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; ??<br> Cog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = Squeak VM redesigned&nbsp; per <a href="http://www.mirandabanda.org/cogblog/about-cog/" target="_blank"></a><a href="http://www.mirandabanda.org/" target="_blank">http://www.mirandabanda.org/</a><u></u>cogblog/about-cog/<br>  <br> thx,<br> <br> tty<br> <br> <br> <br> <br> <br> <br> <br> <br> </blockquote> </div></div><br><br> <br></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div> </div></div> <br></blockquote><br> </div></div></div></div><br><br> <br></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div> </div></div> <br></blockquote><br></div></body></html>