This release of GNU Smalltalk has quite a lot of bugfixes, it might even be the last 2.1.x release. The future (2.2) is quite closely related to my Master thesis which I just started. Basically I am going to do three things.
The first is to clean it up so that one can write down a VM specification like Java's. I already did some of this, now the VM specification for example does not depend on having ContextParts which many Smalltalks do not have. I also found a couple of places where things could be made much more cleaner with half an hour's effort. This can only help.
The second is to add security. That's a bigger deal. So far, I have added a mechanism to give `trustedness' attributes to contexts (activation records) so as to make the thing fast, and I wrote a nice little bytecode verifier. I also wrote a small Flex/Bison-based program that automatizes the decoding of bytecodes (the verifier had two places where I was decoding bytecodes, and Smalltalk had other four, and I was starting to hate this code duplication) and which I like very much.
The third is to implement Java on top of Smalltalk. I think the results of this will be quite interesting: I expect big big big slowdown in FP math (Floats are boxed in Smalltalk and primitive in Java), but improvements in code that uses OOP and interfaces a lot. Besides my uni is doing a lot of research in code mobility and stuff like this, where the increased reflection capabilities of Smalltalk can only help.
Last but not least, I noticed that fortune does not produce random fortunes at all. It tends to output the first fortune in the file quite often. So what's better to learn some Perl than to rewrite it? Here is my effort, I'll be very happy to get some comments on it.