Thinking about the next release.

bryce at kampjes.demon.co.uk bryce at kampjes.demon.co.uk
Sun Nov 26 12:00:52 UTC 2006


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


More information about the Exupery mailing list