[Vm-dev] Re: [squeak-dev] Stack VM = Squeak VM?

gettimothy gettimothy at zoho.com
Wed Nov 27 17:19:44 UTC 2013

Oops, I posted to squeak-dev instead of vm-dev. I have added a CC so we can continue there if you wish.

Ahhhh, I see what's going on now, its an incremental approach..makes sense now.

Smalltalk-80 VM (Blue Book) -> Squeak VM (OE-Tour.pdf)->Stack VM (http://www.mirandabanda.org/cogblog/2009/01/14/under-cover-contexts-and-the-big-frame-up/)->Cog (JIT, Stack To Register Mapping, ..http://www.mirandabanda.org/cogblog/about-cog/)
->Spur (changing the garbage collector and the object representation) ->Lazy Become (http://www.mirandabanda.org/cogblog/2013/09/13/lazy-become-and-a-partial-read-barrier/)

>From your post here: http://www.mirandabanda.org/cogblog/2008/12/12/simulate-out-of-the-bochs/ I gather you used the StackVM with Alien and Bochs as your base to build the JIT for Cog .

So then, in an earlier response to my inquiry on the ~$1,000,000 bounty for cmakeifying the process thread, you wrote 
...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. 

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.

Does that sound about right?


---- On Wed, 27 Nov 2013 08:47:03 -0800 Eliot Miranda <eliot.miranda at gmail.com> wrote ---- 

On Wed, Nov 27, 2013 at 8:05 AM, Levente Uzonyi <leves at elte.hu> wrote:
 On Wed, 27 Nov 2013, gettimothy wrote:
  I am confused as to what the term 'Stack VM' refers to.

 "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." - http://www.mirandabanda.org/cogblog/2009/01/14/under-cover-contexts-and-the-big-frame-up/
 I would say it's a CogVM without a JIT.

Exactly.  Another way of saying it is that the StackVM is an interpreter that doesn't use contexts.  Instead it uses stack frames, much like a conventional language implementation.  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.  The StackVM's performance is about 1.5x the Context Interpreter VM.  The Cog VM is about 5x the Context Interpreter VM.

  > Here is the outline I have. > > Smalltalk VM = Blue 
  Book > Squeak VM   = Tim Rowledge's OE-Tour.pdf
  Stack VM      =  ??
 Cog              = Squeak VM redesigned  per http://www.mirandabanda.org/cogblog/about-cog/




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20131127/6492a1b8/attachment.htm

More information about the Vm-dev mailing list