This page is now mostly obsolete

Ian Piumarta has done fantastic work porting the Squeak VM to Unix. However, he is a very busy person, and seems to have little time for maintaining it. Thus, the version of Squeak on SourceForge has become something of a fork. It usually includes several bug fixes that have not yet been added to Ian's VM.

Getting and Compiling it

If you use Debian, then you can get use the following lines in /etc/apt/sources.list:

deb http://www.linex.org/sources/linex/debian/ woody linex

Then you can use Squeak as with any other packages. You can even try the pre-built binary packages.

These links work since July-2003, you can install the packages named squeak-image and squeak-plugin, both has as a dependence the package squeak-vm . At http://swiki.agro.uba.ar/small_land/58 you can find more detailed instructions of how to use it (only in spanish)

Run VMMaker and generate source code including the plugins you want. Be sure to generate sources so that "src" and "platforms" are sibling directories.

Once you've got the source code, do the following:

Make a "build" directory, to build in (almost any name and location is fine, though "build" as a sibling to "src" and "platforms" will be assumed in this discussion)

Change to the build directory, and execute the configure script in the platforms/unix/config directory. E.g., type "../platforms/unix/config/configure". This is a standard autoconf configure script, and you can run it with –help to see some options that you have.

Changes

January 6

January 5

mkMake has been updated to allow packages to have custom build rules in the new layout.

Mpeg3Plugin and JPEGReaderWriter2Plugin compile now

Sumit Khanna has contributed spec files for RedHat!

Joern Eyrich's tweaked vmPath a little more

Added Eyrich's patches to the memory prototypes, to avoid some compiler warnings. (Or was that yesterday? Ah, whatever.)

January 3, 2001

changed to compile from the copies location, due to popular demand

tweaked the FileCopy primitive slightly

January 1, 2001

Added Joern Eyrich's patch for vmPath

Updated mkfrags and renamed it mkMake; if files intplugins and extplugins are supplied, then they will be used to decide which plugins are to be compiled internally, and which are to be compiled externally

All source code is used in its original location; no copying is necessary (though it doesn't hurt anything).

December 31, 2001

Lots of things are moved to the configure script, including sound and mmap-based memory

The OSS sound driver no longer hangs on open if the device is in use (duh – just use O_NONBLOCK)

The default memory is moved to 50M instead of 20M. On Unix, this usually won't consume any real memory, so it is safe to have a fairly high value. Also, Squeak easily blows 20M nowadays if you really start playing with it.

Pre-Hot Asphault

These changes happened back when I was keeping this release patchable from Ian's release.

Keep directory listings from stopping early if an asynchronous timer signal arrives. The specific case I see this a lot is with NFS accesses on Solaris. The more general problem is that all Unix system calls need to be restarted if they return EINTR.... but it's a pain!

Generalize Ian Piumarta's aio routines for use across the entire VM

The test in sqXWindow.c for the presence of XSHM was un-reversed.

If you change the keymapping with xmodmap, Squeak will notice. This is particularly useful if you use Dvorak but switch your machine to QWERTY when people drop by. :) Even for others, it's the Right Thing for an X11 program to do.

There is some important-looking code to create a new colormap for the squeak X window in certain cases. That code wasn't being applied to the stParent window, and this causes Squeak to fail to start on Sun Ultra 10's and probably other machines as well. The fix is simply to rearrange the existing code so that the colormap handling applies to stParent as well as to the main Squeak window.

Cut and paste refuses requests for things with types other than XA_STRING. Fixed by Ned Konz (ned@bike-nomad.com).

The -memory flag with no argument no longer segfaults. Fixed by Ned Konz.

Detect connection failures in Unix, instead of making the system wait until the first read or write. Fixed by Patrik Nordebo (patrik@nordebo.com>)

If accept() returns an error, typically because the client closed the connection extremely quickly, make sure aioHandle() gets called so that Squeak stays responsive to the socket. Fixed by John Kozak jk@xylema.org

socketValid() checks whether the sockets unit has been initialized or not; before, it would return true too often.