[squeak-dev] [ANN] Squeak 5

Chris Muller ma.chris.m at gmail.com
Wed Aug 12 03:23:48 UTC 2015

In the 17 months since Squeak 4.5 was released, a huge development
effort took place to create the next generation virtual-machine for
the Squeak / Pharo / Newspeak family of programming systems.  Squeak
is the modern incarnation of the Smalltalk-80 programming environment
originally developed at the Xerox PARC.

"Squeak 5" introduces this new VM and associated new memory model,
collectively referred to as "Spur".  Presented [1] by Eliot Miranda
and Clément Béra at the 2015 International Symposium on Memory
Management, this new VM affords Squeak applications a significant
boost in performance and memory management.  Among other
optimizations, the #become operation no longer requires a memory scan.
Object pinning and ephemerons are also now supported.  The release
notes [2] provide more details.

The new memory model requires a new image file format.  Although this
new format results in about a 15% increased memory requirement for the
same number of 4.x objects, a new segmented heap allows memory to be
given back to the OS when its no longer needed, a great benefit for
application servers.

As forward compatibility is as important to the Squeak community as
backward compatibility, Squeak 5 is delivers an image with identical
content as the recent 4.6 release.  Although this new Squeak 5 VM
cannot open images saved under the prior 4.x Cog format, objects and
code can be easily exported from the 4.x image and then imported into
Squeak 5.  Applications whose code runs strictly above the Smalltalk
meta layer will prove remarkably compatible with the new format, most
applications will require no changes whatsotever.

Squeak 5 is the result of monumental effort by a tiny group of very
talented people, but its also just the beginning of yet a new effort;
Spur is just a stepping stone to a more ambitious goals planned over
the next five years.

[1] -- A Partial Read Barrier for Efficient Support of Live
Object-oriented Programming

[2] -- Squeak 5 Release Notes

More information about the Squeak-dev mailing list