I'm currently playing around with a dynamic compiler for Squeak called Exupery. The aim is to have a compiler written in regular Squeak so it is as changable as the collection classes while still providing high performance.

One major aim is to keep all the complex code in Smalltalk where there are better tools to deal with it.

This does mean that the compiler will not be a JIT, it will compile on demand and it will be able to dynamically recompile code in a background process. Lisp environments used to run this way so it definately can be made practical.

The current code compiles to machine code. It generates about 5 machine code instructions per bytecode.

This project started as a way to play around with both customer and programmer tests using test driven development.

The project is now on SqueakMap as Exupery. There is some documentation at http://www.kampjes.demon.co.uk. Currently the documentation is just a guide to the test structure.