Roadmap

Traditionally, GNU Smalltalk had a major release about every year. When a major release is made, development is branched and new stable releases are made as necessary (approximately once a month) until the next major release is ready.

Current release

The current stable release is GNU Smalltalk 3.0.3, released May 14th 2008. It includes the following major new features:

New syntax:
A completely new syntax for defining classes is now present, together with a converter to adopt the new syntax in your existing programs.
Continuations and generators:
These have been moved in the main image (they were available as examples in previous releases). Generators allow streams to be created from blocks, as in this example:

Generator on: [ :gen |
    1 to: 10 do: [ :i | gen yield: i ] ]

This will return a stream whose contents are the numbers from 1 to 10.
Faster image load
In addition to this, image load uses copy-on-write memory mapped files. This improves memory consumption when multiple instances of GNU Smalltalk are loaded.
.star package format
A new compact format for packages written for GNU Smalltalk.
DBI interface
A new database interface with support for MySQL, PostgreSQL and SQLite.

Next release

The next release will focus on porting libraries from other Smalltalks, adding bindings to other external libraries, and facilitating the creation of C/Smalltalk interfaces. The most basic things we "would like to have" have been ported:

The development that led to GNU Smalltalk 3.0b affected the virtual machine in relatively minor ways, so that this development release should be quite stable.

In general, anything else that can be included without disrupting the stability of the system can still make it into 3.1. Other items that could be worked on include:

If you want to contribute, write to the GNU Smalltalk mailing list.

Past releases

2.3.x (December 2006)
Unicode support, improved regular expressions support, NCurses bindings, improved package manager and testsuite, continuations.
2.2.x (November 2005)
Rewritten bytecode interpreter, shared library support, Glorp goodie, pragmas, sandboxing infrastructure.
2.1.x (April 2003)
Ephemerons (finalization), generational/incremental GC, improved package system, embryonic debugger, MySQL goodie, new parser based on the Refactoring Browser, XML/SAX 2.0 goodie, GTK+ bindings.
2.0.x (June 2002)
Just-in-time compiler, GMP support, namespaces widely used, backwards-incompatible ANSI compatibility fixes, virtual filesystem layer, NaN/infinity support, NetClients goodie.
1.95.x (October 2001)
malloced objects, ANSI compatibility, exception handling, socket library, SUnit support, web server goodie, non-blocking I/O, regular expression goodie, i18n for Smalltalk programs.
1.8.x (January 2001)
Bug fixes, {...} array constructor syntax.
1.7.x (June 2000)
More block optimization, full LargeInteger support, namespaces.
1.6.x (1999)
Blocks as closures, improved speed, finalization, read-only constants, weak objects, LargeInteger operations, more functionality in the base classes.
1.1.x (1991)
First publicly available version.

User login