Exupery 0.08 is nearly ready.

Bryce Kampjes bryce at kampjes.demon.co.uk
Tue Aug 22 21:01:40 UTC 2006


Exupery 0.08 is nearly ready for release. This version can compile
methods with blocks and super sends.

arithmaticLoopBenchmark  1398 compiled   92  ratio: 15.196
bytecodeBenchmark        2460 compiled  433  ratio:  5.681
sendBenchmark            1580 compiled  693  ratio:  2.280
doLoopsBenchmark         1084 compiled  642  ratio:  1.688
largeExplorers            485 compiled  520  ratio:  0.933
compilerBenchmark         943 compiled  853  ratio:  1.106
Cumulative Time		 4853 compiled 1510  ratio:  3.213

1,166,287,015 bytecodes/sec; 16,761,970 sends/sec

There is a precompiled VM for 0.08 here:
http://ftp.squeak.org/Exupery/vms/exupery-vm-0.08.tz

The current numbers are no better than before. The compiler benchmark
may be able to be improved by tweaking the profiler that drives
compilation. The largeExplorers benchmark spends most of it's time in
a primitive doing point creation.

It should be possible to improve the compiler benchmark now by
tweaking the profiler that drives compilation.

The current plan is to finish off dynamically inlined primitives next
which should speed up largeExplorers. The bytecodeBenchmark currently
inlines the #at: and #at:put: but this requires manually specifying
the inlining. For this optimisation to be practical, it needs to be
driven by dynamic type feedback.

The remaining things for a 1.0 release are:
 * Finish dynamically inlined primitives
 * Implement enough primitives to provide a nice speed improvement
   for normal code.
 * Add interrupt checking to compiled code.
 * More testing and debugging.

Comments?

Bryce


More information about the Exupery mailing list