Smalltalk is dangerous. It is a drug. My advice to you would be don't try it; it could ruin your life.  -- Andy Bower
Welcome. You have reached the primary site for distributions of Unix Squeak. (Distributions of Unix Squeak downloaded from other sites will often, but not always, be copies of the archives provided here.)
Squeak is a full-featured implementation of the Smalltalk programming language and environment based on (and largely compatible with) the original Smalltalk-80 system. Squeak has very powerful 2- and 3-D graphics, sound, video, MIDI, animation and other multimedia capabilities -- and one of the most impressive development environments ever created. It also includes a customisable framework for creating dynamic HTTP servers and interactively extensible Web sites. The entire Squeak system is open source software, distributed freely with a liberal license.
This page contains the latest releases of the Unix Squeak virtual machine. If you are downloading Squeak for the first time (and you cannot make use of the RPMs) then you might want to read the download page which gives detailed instructions on what to do.
These packages contain the latest release of Unix Squeak. The version history and release notes are at the end of this page. This version is believed to be suitable for general use, but please report any problems or bugs that you encounter.
Apologies in advance for missing entries in the table below. The set of machines to which I have access changes over time and it is not always possible to prepare releases for all relevant architectures and package formats.
Source and binary archives
220.127.116.1165 Unix VM (for Raspberry Pi with experimental optimised display)   ARM v6l GNU/Linux Squeak-18.104.22.16865-linux_armv6l.tar.gz Squeak-22.214.171.12465-linux_armv6l.sh 126.96.36.19914 Unix VM source code Squeak-188.8.131.5214-src.tar.gz   Intel x86 Darwin/MacOSX Squeak-184.108.40.20614-darwin10.8.0_i386.tar.gz Squeak-220.127.116.1114-darwin10.8.0_i386.sh   PowerPC Darwin/MacOSX Squeak-18.104.22.16814-darwin9.8.0_powerpc.tar.gz Squeak-22.214.171.12414-darwin9.8.0_powerpc.sh   Intel x86 GNU/Linux Squeak-126.96.36.19914-linux_i386.tar.gz Squeak-188.8.131.5214-linux_i386.sh   Intel x86 Solaris Squeak-184.108.40.20614-solaris2.11_i386.tar.gz Squeak-220.127.116.1114-solaris2.11_i386.sh   Intel x86 NetBSD Squeak-18.104.22.16814-netbsdelf5.1.2_i386.tar.gz Squeak-22.214.171.12414-netbsdelf5.1.2_i386.sh   Intel x86 FreeBSD Squeak-126.96.36.19914-freebsd8.3_i386.tar.gz Squeak-188.8.131.5214-freebsd8.3_i386.sh   Intel x86 OpenBSD Squeak-184.108.40.20614-openbsd5.1_i386.tar.gz Squeak-220.127.116.1114-openbsd5.1_i386.sh   Intel amd64 GNU/Linux Squeak-18.104.22.16814-linux_x86_64.tar.gz Squeak-22.214.171.12414-linux_x86_64.sh 126.96.36.19914 Unix VM (for 64-bit images experimental)   Intel amd64 GNU/Linux Squeak-188.8.131.5214_64bit-linux_x86_64.tar.gz Squeak-184.108.40.20614_64bit-linux_x86_64.sh 4.4.7 Unix VM (for 32-bit images)   Intel amd64 FreeBSD Squeak-220.127.116.113-freebsd8.2_amd64.tar.gz
The .tar.gz files require manual installation but it should be obvious what to do with the contents.
The .sh files are self-extracting archives that install the VM automatically. Run them with the argument -help for instructions.
The .deb and .rpm files are for manual installation using dpkg or rpm.
Debian users can also obtain packages via apt by following these instructions.
Note that recent .image, .changes and .sources files are usually available from squeak.org.
Note also that VMs for 64-bit images are still experimental but have the potential to run images whose size is limited only by the amount of virtual memory available. If you would like to try running a 64-bit image, in an experimental VM, then a recent one is avilable here:
Squeak4.3-64-bit.zipNote that this image cannot be run by the stable (32-bit image) VMs.
Source Code Repository
You can check-out a self-contained set of sources (including all automatically-generated sources) from the Subversion repository. For the sources corresponding to a numbered release:
svn export http://squeakvm.org/svn/squeak/tags/unix-3.11-3.2135For the very latest sources on the 'trunk':
svn co http://squeakvm.org/svn/squeak/trunk squeak-svn
You can also browse the contents of the repository online.
(Unlike the old CVS repository at SourceForge, which was updated from my local sources whenever I was bored, I am currently using Subversion to for the primary copy of my sources. If you build a VM from the 'trunk' you'll be running the same VM that I am running.)
Anyone who has tried to recreate the VM 'from first principles' knows that it is often difficult (or impossible) to assemble all the necessary pieces of the image in compatible versions. For that reason I am now archiving the images that I use to generate sources for every released version along with the VMMaker configuration. Regenerating 'src' from this preloaded VMMaker image
unix-4.10.2.imageshould yield a 'src' directory identical to the one in the repository at revision 2614.
If you have trouble with the latest release you might want to try the previous stable release:
Source and binary archives
3.7-7 Unix VM tarball RPM deb   PowerPC Darwin Squeak-3.7-7.powerpc-apple-darwin8.5.0.tar.gz   PowerPC MacOSX Squeak-vm-3.7-7.ppc.app.dmg   Squeak-3.7-7.ppc.app.tar.gz   PowerPC GNU/Linux Squeak-3.7-7.powerpc-linux-gnu.tar.gz Squeak-vm-3.7-7.ppc.rpm squeak-vm_3.7-7_powerpc.ded   Sparc Solaris Squeak-3.7-7.sparc-sun-solaris2.9.tar.gz   Intel x86 Solaris Squeak-3.7-7.i386-pc-solaris2.9.tar.gz   Intel x86 FreeBSD Squeak-3.7-7.i386-freebsd4.10.tar.gz   Intel x86 NetBSD Squeak-3.7-7.i386-netbsdelf1.6.1.tar.gz   Intel x86 OpenBSD Squeak-3.7-7.i386-openbsd3.4.tar.gz   Intel x86 GNU/Linux Squeak-3.7-7.i686-pc-linux-gnu.tar.gz Squeak-vm-3.7-7.i386.rpm squeak-vm_3.7-7_i386.ded source code Squeak-3.7-7.src.tar.gz Squeak-vm-3.7-7.src.rpm   Squeak3.7-5989.image   tarball RPM deb (.image and .changes) Squeak-3.7-5989.image.tar.gz Squeak-image-3.7-5989.noarch.rpm squeak-image_3.7-5989_all.ded   SqueakV3.sources tarball RPM deb (.sources) Squeak-3.sources.tar.gz   Squeak-sources-3-1.noarch.rpm   squeak-sources_3_all.ded   VM + image + sources tarball/dmg RPM deb   PowerPC MacOSX Squeak-full-3.7-7.dmg
If the above versions are too recent, many earlier releases are still available.
|18.104.22.16814 released. Support building and installing VMs for 64-bit images.
|22.214.171.12402 released. UUIDPlugin can use uuid_create(). Link squeakvm against libiconv if necessary. Search /usr/local and /usr/pkg for headers and libs. Rename "aio.h" -> "sqaio.h". Allow the interpreter VM to execute format 6505 images. More robust check for freetype2 headers. Allow a headless image to change the size of the Display. Compute gmt offset when tm_gmtoff not available on Solaris.
|126.96.36.19993 released. Interpreter source updated to VMMaker 4.10.2. Fixes to build process for compatibility with most recent subversion client and bizarre situations with uuid.h on some Linux distributions. Obsolete autotools files removed. New plugins for Scratch support: WeDoPlugin, CameraPlugin, ScratchPlugin. Trailing NUL not included when copying strings into Squeak via locale. Re-enable gcc optimisations for fdlibm (FloatMathPlugin). SerialPlugin ensures descriptor close and enforces limit on max open ports. UUIDPlugin refuses to load if uuid_generate() would cause a segmentation fault. Mpeg3Plugin never uses pthreads. Main window clips by children for the convenience of OpenGL subwindows.
|188.8.131.527 released. File operations on symbolic links with relative targets are handled properly. UUID plugin fixes for NetBSD. Find libXrender in a better way. Disable gcc optimisation for fdlibm to avoid breakage.
|184.108.40.2062 released. Updated pulseaudio driver (fixes bad behaviour on Ubuntu Karmic). UUIDPlugin internal after some reports that it behaves better that way.
|220.127.116.116 released. Generated sources rebuilt from VMMaker-dtl.169. Re-enabled MIDI support via ALSA on Linux. Broken locales should no longer cause line ends to go missing during copy and paste. Add support for "platform source version" primitive. Remove debugging beep on first clipboard copy under X11. Allow fully-qualified pathnames when loading modules. Bundle FreetypePlugin with source and binary releases. Various fixes for 64-bit cleanliness (many thanks to Dave Lewis). Add microsecond clock support. Fix launching from a menu under KDE. Fix --CFLAGS option in configure script. Serial plugin invalidates cached port names on close. Better handling of symlinks when looking for absolute path to VM binary.
|18.104.22.1685 released. Build system rewritten using CMake: bye-bye autotools, it was not nice knowing you. Numbering scheme changed to X.Y.Z.R where X.Y.Z is the version of VMMaker used to generate the interpreter and plugins, and R is the repository revision of the platform support code. Interpreter and plugins regenerated from latest sources. Pulse Audio driver (vm-sound-pulse) added (thanks to Derek O'Connell). FFI modified on Linux to avoid potential FPU stack overflow. CAPS LOCK on is no longer confused with SHIFT being down. SerialPlugin support for named ports added. dprintf() renamed to debugf() to avoid POSIX stdio conflict. UUID headers can be in /usr/include/uuid. Do not build RomePlugin unless libcairo configured with freetype support. Reduce noise from iconv when conversion tables are missing. Improved error reporting when loading plugins. Avoid reporting negative keyCodes when unicode char has no ASCII equivalent. Fix sound driver for MacOS X on Intel processors. Fix ImmX11Plugin on MacOS X. Abandon autotools/libtool in favour of CMake. Various fixes to compile cleanly on Linux/Alpha. Various fixes to compile cleanly on Solaris. Sun sound driver uses asynchronous I/O.
|3.10-6 released. Engaging caps lock does not masquerade as shift being pressed. Interpreter rebuilt from vmm-dtl-126.
|3.10-5 released. Add SecurityPlugin support for read-only resource directories. Add HostWindowPlugin stubs. Support setting main window title in X11. Do not abort if unconfigured xshm/xasync option is given.
|3.10-4 released. Cursor changes should work better during drag and drop. Preferred visual is now 24- or 16-bit if provided, to avoid problems with compositing UIs. Text pasted from external copy now has LF translated to CR. 'View Source' key on OLPC generates CMD-, for the image to deal with. CAPS_LOCK key reverses the sense of the SHIFT key. Add support for big cursors. Daylight savings and timezone fixes. Add Ogg and GStreamer plugins.
|3.10-3 released. Renew generated source with patches for 32- and 64-bit cleanliness.
|3.10-2 released. Added AIO, ImmX and Kedama plugins. Add support for Sugar UI. Add support for dragging items out of the image. Add sound plugin mixer interface.
|3.10-1 released. Support for IPv6 added. Quartz display driver tries to open fullscreen window on correct screen. All keyboard input with valid UCS4 now generates input events. Window event generated when WM tries to close the Squeak window, giving the image the choice of how to deal with quitting. Various changes for OLPC. Support for dragging-and-dropping items from the image to other X11 apps. Platform support for locale plugin added. International input support added: dead keys, compose key, multikey characters, and composition overlay window. Manual page updated for new options and environment variables.
|3.9-8 released. ALSA support for Linux. Problems with iconv() fixed on Solaris.
|3.9-7 released. Modifications to the mechanism the VM uses to relinquish the processor for very short intervals to avoid high CPU loads while idling. UUIDPlugin is now external to prevent the VM failing to run when libuuid is missing or uncooperative. AioPlugin is bundled. Aliases are resolved in path names on OS X.
|3.9-4 released. KeyUp events are no longer reported for autorepeats under X11. Improvements to socket latency. Security plugin now obeys SQUEAK_USERDIR if set. OSProcess and XDisplayControl plugins updated from current distributions and bundled. The 3.9 Unix VMs are now fully compatible with Croquet and will run both Squeak and Croquet images. Additional plugins required for Croquet are now supported and bundled in both source and binary releases: CroquetPlugin, FloatMathPlugin and UUIDPlugin.
|3.7-7 released. Documentation updated to reflect recent organisational changes. 'gnuify' no longer requires gawk. Obscure bug in socket option lookup fixed. NPSqueak changes from Bert (SQUEAK_USERDIR environment variable overrides 'My Squeak', plus several bug fixes). Event code updated for recent changes to event structures. README, manual page, and how-to documentation updated and revised. Instructions for SVN checkout added. 'Easy build' route for checked-out SVN repository sources added. Browser plugin now supports imageName and failureUrl attributes within <embed ...> tag. Preliminary support for XDND-based drag-and-drop (Gnome, KDE, etc.) in the X11 display driver. New flag '-glxdebug <n>' prints OpenGL diagnostics in X11 display driver. Interpreter should no longer crash when loading image segments into memory above the 2GB boundary (thanks to Ned Konz). Additional checks for bad external data in SocketPlugin. Less inappropriate noise when probing for external plugins. Problems preventing more than one external plugin from loading in Mac OS X fixed.
|3.6-3 released. This is the 3.6 "final" release. Substantial rewrite of Mac OS X sound code for OS 10.3 (Panther). Better scroll wheel and 3-button mouse behaviour on OS X. Improved dock icon behaviour on OSX. New icons for OSX (thanks to Bert Freudenberg). Mac OS X dependency on libiconv removed. Dependencies on glibc2.3 in the 386 GNU/Linux version removed. Ephemeron support removed from the VM. Improvements to character set conversion on Solaris. Date/time reported on files now consistent with output from "ls". Backed out a problematic change in Socket>>primConnectionStatus. New dead key support for X11 (activated if LC_CTYPE/LC_ALL set); option "-nointl" turns it off. Several OpenGL fixes. Support for new Socket primitive listenOn:backlogSize:interface:. RPMs have "root.bin" ownership on everything. Problems with plugin and shared library searching fixed. Improved timing for Delays. Copy/paste compatibility problems fixed (thanks to Ned Konz). New OSProcessPlugin from Dave Lewis. Display/sound drivers are now dynamically loaded (and can be selected) at startup. New display driver "fbdev" for running on the Linux console.
|3.4-2 released. This is a maintenance release of 3.4 to back-port some improvements from the 3.6 build process. No new features or VM bug fixes are included. If 3.4-1 is working for you then you don't need to fetch this release.
|3.4-1 released. Rerelease of 3.4 to conincide with the final 3.4 image. The only fix is for an obscure problem with the INSTALL script in the binary tarball which was replacing symlinked dirs with fresh (empty) dirs before unpacking. (Thanks to L. Peter Deutsch for spotting this problem.) Enjoy!
|3.4-gamma1 released. A couple of subtle problems fixed concerning directory deletion and UDP packet reception (thanks to the vigilance of Ned Konz and Stefan Kersten). Completely new built-in support code for FFI prims (for SVr4-ish and Mach-O ABIs on Intel and PowerPC, entirely eliminating the dependency on libffi under Darwin and GNU/Linux). B3DAccelerator and OSProcess plugin support code updated. Note: there are no BSD binaries for this release. If you want me to build them, mail me.
|3.2-5 released. Build moved to autoconf 2.53. Lots of VM improvements (too numerous to mention: see the release notes). RePlugin (regular expressions) and FFIPlugin (foreign function calls) are bundled in this release (as external plugins). New browser plugin support is also bundled in this release and can be built along with the regular VM. PTYPlugin is now external (to make life easier for people who compile from source on systems that don't support ptys).
|3.2-4 released. Improves portability in the PTY plugin, ties up the last of the loose ends in BSD build, and fixes a couple of bugs in AsynchFilePlugin.
|3.2-3 released. Several build problems fixed, including support for compiling with -DHEADLESS. Tweaks to B3DAccel, Socket and browser plugin (eliminating a horrible pause on return from snapshot). Brand new in this release: OSProcess plugin, AsyncFile and PseudoTTY support.
|3.2-2 released. This fixes a serious bug in window code (thanks to Ned Konz who spotted it) and includes various changes to the build process needed to support rpm.
This is the first stable release of Unix Squeak since 3.1pre1 (which
was quite a while ago). Much of the windowing and sound code has
been rewritten, the Netscape plugin code has been updated, and
numerous contributed patches applied. To celebrate the event
I decided to redesign the Unix Squeak site. Hope you like it.
(This is used to be called 3.3.1, but that version has been retired. The confusion in the version numbering was imposed by a desire to keep the RPM and tarball version numbers consistent between the stable VM and the stable image. Given the choice between utter version confusion and respecting the monotonicity of time, I chose to make time jump backwards.)