Hi Ian,
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
http://squeakvm.org/unix/alpha
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/<version>'.)
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.)
Cheers,
Ian