Janko Mivšek wrote to the squeak-dev mailing list that “we are preparing an application to this year’s Smalltalk Google Summer of Code under the ESUG umbrella, as last year”.

Google Summer of Code is a global program sponsored by Google that offers student developers stipends to write code for various open source software projects. The Smalltalk community has a successful record of participation in the scheme, under the aegis of ESUG in recent years, and our organisers are looking for students and ideas, (and even better, students with ideas) for our entry in this year’s programme.

Janko asks Smalltalkers to “please start thinking about ideas what projects would be nice to have. Also start looking around for students. How to approach the universitites near by you, do you know who to contact there, etc”.

To see last year’s ideas and projects, visit the site for last year’s students. You can find out more at the new Smalltalk GSoC 2011 website: http://gsoc2011.esug.org, and don’t forget to ensure you’re aware of the GSOC timeline.

Squeak 4.2 final now out!

3 February, 2011

Squeak4.2-10966.zip is now available at http://ftp.squeak.org/4.2. 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.

Sean DeNigris has been doing some great archaeology recently, and with help from some of the original Sophie team, he has managed to get some of Sophie’s rich multimedia capabilities working in mainstream Squeak images.

Sophie is a multimedia editing environment that was originally written in Squeak, although more recently it has been rewritten in Java.

The screenshot above shows a video being played by the QuickTime plugin, and being presented as a morph in Squeak. Sean shows in his blog post how to get this up and running in a few minutes in Squeak on OS X. There’s also a great discussion on the squeak-dev mailing list.

There’s still lots of gems to be uncovered in the Sophie code base, but this is a great starting point!

The Return of the Connectors

10 December, 2010

Chris Muller has recently updated Connectors to work with Squeak 4.2 images. Connectors gives you the ability to turn Morphic into a drawing environment for making connected diagrams. This tool was developed by Ned Konz many years ago and hasn’t been able to load in an up-to-date image for some time.

A Connector is a Morph that looks like a line and has a constraint on either end that keeps the ends attached to some other Morph. You can specify properties such as width, borders, fills, end-decorations for each connector, as well as determining the path the connector takes and what labels it should have. The package also comes with other tools to aid in the creation of smart drawings. See the tutorial for more information.

The updated package is available on SqueakSource.

New tools for Squeak

2 December, 2010

The staff and students at the Hasso Plattner Insitute have set up a new site to share the impressive work they are doing using Squeak. The projects they are showcasing include some gorgeous UI Widgets and a new UI Designer (shown above).

Each project is available at the Institute’s SqueakSource server, and can be loaded using Metacello configurations.  All configurations were tested and run in the current Squeak (Trunk) versions (4.1, 4.2). The site is built using Trac project management software, which provides for issue/bug tracking if you do find any problems.

Many thanks to the Software Architecture Group, led by Prof. Dr. Robert Hirschfeld at the Hasso Plattner Insitute (University of Potsdam), for sharing these great projects.

(Note that Firefox currently gives a warning about the site due to an incomplete certificate chain, but this should be fixed soon).

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!