[Vm-dev] compiling the stack VM with LLVM at -Ofast

David T. Lewis lewis at mail.msen.com
Thu Oct 9 15:57:59 UTC 2014

On Wed, Oct 08, 2014 at 09:39:02PM -0700, John McIntosh wrote:
> Due to attending the Vancouver Island Camp Smalltalk 2014, I spent a few
> hours (ok many) being motivated, and trying to compile a 2009 era stack VM
> with LLVM optimization fully on.
> I can say that part is mostly completed, but I need some help understanding
> how to bring the VM source up to date (without GCC) so that I can see how
> best to tackle a few remaining issues. Mostly focusing around something odd
> in the LargeInteger Plugin.
Hi John,

Great to hear from you!

Are you working with the trunk SVN code base, or with the oscog branch? I
am away and cannot check right now, but I expect that both the SVN support
code and the VMMaker Smalltalk should currently be the same (or very
nearly so) for this and other plugins. I do want to try to keep it that
way if we can.

By way of terminology, we are using the term “interpreter VM” to refer to
the trunk SVN and VMMaker that produces the traditional Squeak VM, and
“stack interpreter”, “cog”, “oscog” refer to Eliot’s branch. Most of the
plugins (including VM plugins) are reasonably in sync in the two branches,
but VM itself is not. In 2009 you would have been working in trunk branch.
Tim has recently been doing work with the stack interpreter in the oscog
branches of SVN and VMMaker, and I am assuming that this is what you are
looking at now.

I want to mention that Javier Diaz-Reinoso has recently stepped forward
(at my persistent request) to do a recompile of your 4.2.5beta2U VM, with
the VMMaker sources updated to the latest. This is to enable the VM to run
recent closure images saved from a Cog VM, as well as older images such as

Javier announced this on squeak dev:

And I put a copy of his rebuilt VM is at:

We have not gotten any feedback on this, but if you or anyone else can
confirm that Javier’s build is ok, it would be very helpful for folks with
older Macs, as well as for Etoys.

Just in case you are working with the trunk sources, as opposed to the
oscog branch, and if you are trying to bring your generated sources up to
date within an xcode project, then you may be trying to do the same thing
that Javier did. I’m not sure, but you might find exactly what you are
looking for in his zip file at
Also, the latest generated sources from VMMaker are now being kept along
with the platforms sources:

  svn co http://squeakvm.org/svn/squeak/trunk/src
  svn co http://squeakvm.org/svn/squeak/trunk/platforms

The trunk/src directory contains the most recently generated VMMaker
sources. I’m generating them from a unix platform and I think there are
few Mac plugins missing (Javier just copied them in from your earlier
distribution I think), but these sources should be useable with
trunk/platforms for any plantform.

I suspect that I have just answered the wrong question several times over
here, so please correct me and I’ll try to help if I can.


More information about the Vm-dev mailing list