[Vm-dev] RFC: Unix 3.11.3-2116 VM

Ian Piumarta piumarta at speakeasy.net
Mon Aug 31 09:08:40 UTC 2009

Unix VM hackers,

I've published a preview of the 3.11.3 Unix VM for the amusement of  
alpha testers everywhere.  Lots of things are bound to be broken and/ 
or forgotten and/or incomplete and/or begging for improvement.  I'm  
not quite finished tweaking but comments and suggestions are  
definitely welcome at this stage!

Grab sources from the trunk of Subversion, or look in


for archives of sources and binaries for i386 (Linux, NetBSD, FreeBSD  
and Solaris) and powerpc (Darwin).  (Files ending in '.sh' are self- 
extracting archives; run as shell script and follow instructions.)

The noticeable changes since 3.10 are:

0. Plugins have been regenerated from latest releases

At least for those on squeaksource.  Any hiding in more obscure  
places might still be stale.

1. New build process based on CMake

See README in the source archive or platforms/unix/README.CMake in  
the repository.

2. Different plugin and FFI library search strategy

The default plugin directory is now the VM binary directory.  This is  
correct for installed VMs where the binary lives alongside the  
plugins in /usr/.../lib/squeak/version/squeakvm.  A launcher script  
installed as /usr/.../bin/squeak figures out where the VM is (either  
installed or running from a build directory) and adds a -plugins  
option appropriately.  The script also does the pulse audio OSS  
kludge if necessary.  (Another script, squeak.sh, is intended to  
launch Squeak from a menu.  It's begging for improvement.)

SQUEAK_PLUGINS (or the argument to -plugins) can be set to a colon- 
separated list of places to look for plugins.  (Dave can debug one  
plugin at a time using 'squeakvm -plugins bld/%n:/usr/lib/squeak/ 

Libraries are searched only by whatever mechanisms dlopen() uses.   
Applications that used to rely on the VM searching every nook and  
cranny for FFI callouts may have to set LD_LIBRARY_PATH, or whatever  
local equivalent is provided, to ensure their external functions'  
libraries are found.

3. New numbering scheme

The VM is now numbered X.Y.Z-R where X.Y.Z are the version of VMMaker  
used to generate the Interpreter and plugins, and R is the Subversion  
repository revision of the Unix support code.  (The archives are  
named X.Y.Z.R, just because rpmbuild is grumpy otherwise.)


More information about the Vm-dev mailing list