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.tzThe 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
_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery