[Vm-dev] Re: [Cuis] New Introductory Tutorial

KenD Ken.Dickey at Whidbey.com
Sat Nov 14 16:09:22 UTC 2015

On Sat, 14 Nov 2015 05:02:53 +0000
EuanM <euanmee at gmail.com> wrote:

> I've created Yet Another Smalltalk First
> Steps tutorial.
> If you have experience running any of these systems on Windows, Linux
> or MacOS, please check to see if I have the instructions correct for
> your chosen pairing of Smalltalk and OS platform.

On Linux, Cuis works fine from the command line once the proper SqueakVM is installed.

E.g. in the Cuis-Smalltalk-Dev directory
   squeak  Cuis4.2-2571.image

> The document is at:
> http://smalltalkinsmallsteps.blogspot.co.uk/2015/11/get-smalltalk-up-and-running.html

The different Squeak VMs are transition points and might need some explanation.

The stack-interpreter VM is a traditional bytecode interpreter.

Cog does just-in-time (JIT) compilation to native code for faster execution.

Spur is a new memory model which simplifies object layouts and is common between 32 and 64 bit memory architectures.  Because of object format/layout changes Spur images must be run on a Spur VMs and non-Spur images on a non-Spur VM.  You have to match the VM to the object format.

As far as I am aware, there is no Spur image for Cuis yet.  We need to write a tool to read a current image and write it out in Spur format.  Spur code is still evolving rapidly, so writing the  image translation has not been a priority for us.  Now that Squeak 5.0 is out (the 4.x series used the old format, 5.0 uses Spur) things are probably stable enough that we can get to this.


One side note is that none of the Cog (JIT) VMs run on ARM Chromebooks under Chrome OS.  I don't run Intel, but suspect the JIT is broken there as well.  This apparently has to do with the tightening up of code security policies in the Chromium OS.  As JIT means writing data, then executing this as code, there is an obvious security hole to be addressed.

It appears that there are are/should be rubrics/rules which allow JIT.  The V8 JavaScript VM does JIT on ChromeOS.  But it takes time to dig through the megabytes of code and docs to get at the details.  This is in progress, but there is not much resource (people time) to devote to it.


More information about the Vm-dev mailing list