[Vm-dev] VM Recipe: How to build an interpreter VM on Linux

David T. Lewis lewis at mail.msen.com
Mon Apr 13 02:57:02 UTC 2015


How to build an interpreter VM from source on a typical Linux or Unix system:

Install development tools for your Linux system (32-bit libraries are not required).

Install CMake, either from your Linux distribution or from www.cmake.org

Install Subversion, either from your Linux distributiion or from
https://subversion.apache.org/

Make a new, empty, directory for your work.

In that directory, download the full platforms sources from the Subversion
repository. Download everything, whether you need it or not. The Subversion
directory information will be used in the build process, so do not cut
corners to save space.

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

Also in the new directory, download the generated sources. This is an up to
date copy of source files generated from the Smalltalk source code in VMMaker.
You can generate them yourself by loading VMMaker, but using the files from
the Subversion repository is a faster way to get started.

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

You will now have ./platforms and ./src directories with the latest source
code for the VM. Make another subdirectory called ./build that you will
use to build the VM.

  $ mkdir build

Change to the build directory.

  $ cd build

Copy the example Makefile into your build directory.

  $ cp ../platforms/unix/cmake/Makefile.example Makefile

Build the VM

  $ make

Install the VM

  $ sudo make install

You now have a VM that runs that classic Squeak image formats, including
the 64-bit version (see http://build.squeak.org/job/Squeak%2064-bit%20image/).

This is a traditional context interpreter VM. It will not run the latest
high performance Spur image formats. Please refer to the Cog and Spur VM
development at http://www.mirandabanda.org/cogblog/ and
http://www.mirandabanda.org/files/Cog/VM/ for the latest Cog and Spur
VM development, and for VMs that support the new Spur image formats.

Dave



More information about the Vm-dev mailing list