At the moment I'd like to get the following into the next release of Exupery: * A new primitive. * A new context class for Exupery's method contexts. * Return true and false primitives. * Get the stress test running in 3.9
The new primitive should mean that compiling the large explorers benchmark will always be beneficial. At the moment if it tries to inline point creation then there's a 5-10% speed loss. New is also a useful building block because it's used in many other primitives.
The new context class is to interact with the debugger and other tools. It will also provide an easy place to put decompilation hooks if a context is being manipulated via reflection. The goal is to have the debugger and profilers work nicely with Exupery's compiled methods again. Creating a new context class to do this should make it easier to add full method inlining in 2.0.
Return true and false primitives are to enable these simple primitives to be compiled and inlined as they do almost nothing. At the moment compiled code does a full primitive lookup to execute these primitives while the interpreter inlines them into commonSend.
The stress test crashes again. This looks like it's because there are more tests in 3.9 and some of those tests cause Exupery problems. I also think there may be a bug or two due to upgrading VMMaker to 3.8b6.
That just leaves implementing interrupt checking in compiled code before Exupery is ready to begin running in the background. I suspect that the register allocator will need a bit of tuning to speed up compile times and more bugs will need to be fixed before background compilation is practical.
Bryce
exupery@lists.squeakfoundation.org