<div dir="ltr">Hi tty<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 27, 2013 at 11:53 AM, gettimothy <span dir="ltr">&lt;<a href="mailto:gettimothy@zoho.com" target="_blank">gettimothy@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><u></u><div><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>  )<br>
</div></div></blockquote><div><br></div><div>Only for the Cog VM.  The Stack VM doesn&#39;t require Bochs.  Bochs is used to execute and disassemble machine code.  There&#39;s no machine code in the Stack VM.</div><div><br>
</div><div>I shall correct those instructions.</div><div> </div><blockquote class="gmail_quote" 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">
<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  <br>   (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  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> &amp; <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. <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 Spur32BitMemoryManager (functional) &amp; Spur64BitMemoryManager (completely untested).</div><div>Then read SpurBootstrap32.</div>
 <div>Try and create a 32-bit Spur image and run it.</div><div>Then try and implement SpurBootstrap64.</div><div>Try and create a 64-bit Spur image and run it.<br></div><div><br></div> </div></blockquote><br><br>Sound like a plan?<br>
<br>thx.<br><br>tty<br><br><div><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&#39;s going on now, its an incremental approach..makes sense now.<br>
</div></div></blockquote><div><br></div><div>Yes.  Qwaq got something faster sooner.  The phone folks got a faster VM that doesn&#39;t require a JIT (see StackVM on Android, iPhone etc).  I got a simpler simulator for Spur.  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&#39;s right.</div><div> </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.  With the StackVM simulator you can get a 64-bit Spur memory manager working.  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 &#39;Stack VM&#39; refers to.<br>
  </blockquote> <br></div> &quot;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.&quot; - <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&#39;s a CogVM without a JIT.</blockquote><div><br></div><div>Exactly.  Another way of saying it is that the StackVM is an interpreter that doesn&#39;t use contexts.  Instead it uses stack frames, much like a conventional language implementation.  And remember &quot;doesn&#39;t use contexts&quot; doesn&#39;t mean &quot;doesn&#39;t have contexts&quot;; instead context objects are created when the program asks for them instead of on every send.  The StackVM&#39;s performance is about 1.5x the Context Interpreter VM.  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   = Tim Rowledge&#39;s OE-Tour.pdf<br> <blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  Stack VM      =  ??<br> Cog              = Squeak VM redesigned  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></div><br></blockquote></div><br><br clear="all"><div><br>
</div>-- <br>best,<div>Eliot</div>
</div></div>