Magma 1.2 released

21 April, 2011

Chris Muller wrote to the squeak-dev mailing list announcing that Magma 1.2 is now released for Squeak 4.2, Pharo 1.1 and Pharo 1.2.

Magma is a high-performance, fault-tolerant, multi-user object database that provides transparent access to a large-scale shared persistent object model, supports multiple users concurrently via optimistic locking, and uses a simple transaction protocol.

This new release offers bug fixes, new features and improved performance thanks to minimising problems associated with finalisation. In addition, Chris has reviewed and updated the Magma documentation. More information and support is always available from the Magma mailing list.

Chris writes that “this release is, exactly, one year since Magma 1.1, thank you for your patience”. Surely it’s us who should be saying thank you to Chris, for his continued work on this valuable project!

Squeak 4.2 final now out!

3 February, 2011 is now available at This is intended to be the actual-released 4.2 image, unless, as Chris Muller says, “we find some problem, which we won’t!”.

Some of the new features in this release are:

  • Preparation for adoption of Cog VM
  • Significant class-library and IDE improvements, with many speed improvements
  • High-precision Clock (microsecond precision)
  • Cleaned-up code base, with better support for unloading optional packages and fonts.
  • The last of the underscore assignments have been replaced with ANSI assignments.
  • Refactoring and unification of Smalltalk and SmalltalkImage globals.
  • API for stdio access (requires recent VM)
  • Improved command-line interface
  • Better Documentation (see Help > Help Browser)
  • SUnit now supports timeouts
  • More UI work including a tweaked look and feel, and support for translucent fonts
  • Support for classic MVC has been restored to Squeak for better support of slower devices
  • System Reporter (found under Help > About this system) – a tool to simplify and standardise the reporting of your image’s set-up.

See Help > Welcome Workspaces > Welcome to Squeak 4.2 for more details of the changes in this image.

Note that users on Macs may find that the mouse buttons work in an unexpected order in this image. This is expected behaviour to allow for the grand reunification of mouse button handling in the upcoming version of the VM, which will restore the standard behaviour. In the meantime, use the Swap Mouse Buttons preference to keep things sane.
Congratulations to Chris Muller who has been leading the effort to get this release out the door, as well as the many contributors who provided updates, error checking, bug fixes and moral support for the process.

Janko Mivšek is delivering his Christmas presents early this year, with the announcement of  the first beta of the “Christmas edition”(6.2) of Aida/Web. Aida/Web is a Smalltalk web application framework with integrated Ajax support, a rich collection of web components, REST-like URLs, and integrated session and security management and much more.

Among the many new features in this version are mobile device detection and rendering, HTML5 support, WebSocket support for bidirectional communication between server and browser, nestable AJAX-enabled forms, and the introduction of a unified JSON-based message format between server and browser.

Aida/Web is supported on six Smalltalk platforms: Squeak, Pharo, Gemstone/S, VisualWorks and ObjectStudio, Dolphin Smalltalk, and Smalltalk/X.

See the Aida/Web download page from more information. Janko has also provided an interesting analysis of the codebases of Aida/Web, Seaside and Iliad.

Stefan Marr has just announced on his blog the relase of RoarVM, the first single-image manycore virtual machine for Smalltalk. RoarVM is based on the work on Renaissance VM by David Ungar and Sam S. Adams at IBM Research, and was ported to x86 architecture by Stefan.

From his post: “The RoarVM supports the parallel execution of Smalltalk programs on x86 compatible multicore systems and Tilera TILE64-based manycore systems. It is tested with standard Squeak 4.1 closure-enabled images, and with a stripped down version of a MVC-based Squeak 3.7 image.” Support for Pharo 1.2 is currently limited to 1 core, but this is being worked on!

Here’s some indicative figures for this new VM (using an adapted version of tinyBenchmarks on an MVC image):

 1 core   66M bytecodes/sec;  3M sends/sec
 8 cores 470M bytecodes/sec; 20M sends/sec

As Stefan notes “The RoarVM is a research project and is not as optimized for performance as the standard Squeak VM”. For comparison:

Squeak 4.2.4beta1U, MVC image, OS X 555M bytecodes/sec; 12M sends/sec

so you’ll need a few cores active before you start to see improvements over your existing image! There are also a number of known issues with the current implementation.

You can download the code from the RoarVm page at GitHub, contribute to the discussion on the vm-dev mailing list, or follow #RoarVM updates on Twitter.

Levente Uzonyi is obviously one of a number of people who have been quite envious of the built-in tab-completion in Pharo, so he’s put in the work required to make OCompletion work on Squeak images again. OCompletion works in two ways: it offers a short list of automatic completion hints as you type based on your recent activity, or you can bring up the fuller (classic eCompletion) list by using the tab key, and use the up and down arrow keys to navigate the list and the right arrow to reveal syntax-highlighted source code for the methods listed.

OCompletion is a re-working of the venerable eCompletion package, based on research done by Romain Robbes and Michele Lanza. It is aware of the current context as you type, and so offers suggestions from your current area of work e.g. class, package etc. This means that it responds much more quickly than eCompletion based on the complete image code base. It also adds a number of look-and-feel enhancements that make it a perfect fit with the current appearance of Squeak.

To try it out, just evaluate the following script in your image:

Installer squeaksource
 project: 'RoelTyper';
 install: 'RoelTyper-FredericPluquet.82';
 project: 'OCompletion';
 install: 'OcompletionSqueakCompatibility-ul.1';
 install: 'Ocompletion-ul.67'.

Useful notes:

  • Check out the squeaksource page for OCompletion to review latest versions of Levente’s code
  • Default behaviour is to switch on the ecompletionSmartCharacters preference, which results in auto-typing of matching [], (), {}, “”, ” characters. Some people may wish to switch off this preference.

Thanks to Levente for making this handy tool available in Squeak again!

Etoys 4.1 now available

30 September, 2010

Bert Freudenberg announced on the squeak-dev mailing list that Etoys 4.1 is now available. Etoys is a media-rich authoring environment and visual programming system with a simple, powerful scripted object model, ideal for teaching children powerful ideas in compelling ways. Based on Squeak, Etoys is available for free, with an open-source licence. You can run it on Mac OS X, Windows, and Linux (using the Etoys To Go version), or even use a plugin to run it directly in your browser. Etoys is also available on the XO OLPC laptop.

This release includes new features such as DrGeo for exploring geometry, speech bubbles for objects, new tiles and Quick Guides in a number of languages. It also includes a large number of bug-fixes and cleanups. A number of new projects have been created to showcase the new features. Some of the new features were developed as part of Smalltalk’s participation in this year’s Google Summer of Code, which was co-ordinated by ESUG.

You can find out more about Etoys 4.1 by reading the release notes, or by downloading the new version.

Seaside 3.0 released

12 September, 2010

Following some last minute work at this year’s second Camp Smalltalk event, the Seaside developers are pleased to announce the release of Seaside 3.0 on the eve of the ESUG 2010 Conference in Barcelona.

Seaside has undergone a total overhaul, with many classes having been refactored to reduce complexity, decrease coupling, and improve flexibility. The packages in Seaside are now cleanly defined with clear relationships and interdependencies, allowing you to load only those pieces you require. There are improvements in testing, in portability and in performance, as well as much better tools for developers including the Seaside Control Panel for Pharo and Squeak, and the web-based administration interface.

For more information, see the Seaside 3.0 release announcement, or the following links:

Seaside 3.0 Detailed Release Notes

Seaside One-Click Experience 3.0 (runs with one-click on Mac, Windows and Linux)

Seaside 3.0 Developer Image 3.0 (for Pharo developers)

SqueakSource Repository for Seaside 3.0