[squeak-dev] [ANN] Exupery 0.15 released

bryce at kampjes.demon.co.uk bryce at kampjes.demon.co.uk
Thu Mar 12 21:51:56 UTC 2009


Exupery 0.15 is released and available via pre-built images, SqueakMap,
and package universes. This release includes some significant bug
fixes and a few performance enhancements.

Instructions are here: 

  http://wiki.squeak.org/squeak/Exupery

The biggest practical benefit is a major bug has been fixed which
makes running with Exupery much more reliable. Crashes are no longer
expected after about an hour or so. 

The two major optimisations were adding more addressing modes and
also compiling calls to the interpreters primitives. This means
that code with many calls to primitives can benefit from Exupery's
PICs. Compiling primitives is responsible for the doLoopsBenchmark
showing a benefit again, Exupery used to perform identically to the
interpreter on a Core 2.

While Exupery can improve the macro benchmarks sometimes it will
slow code down a little as well so practical performance gains
with unrestricted compilation are still a release or two away.

Here's the current benchmarks:

  arithmaticLoopBenchmark 390 compiled 80 ratio: 4.875
  bytecodeBenchmark 724 compiled 250 ratio: 2.895
  sendBenchmark 663 compiled 385 ratio: 1.722
  doLoopsBenchmark 381 compiled 235 ratio: 1.621
  pointCreation 394 compiled 389 ratio: 1.013
  largeExplorers 269 compiled 210 ratio: 1.280
  compilerBenchmark 273 compiled 250 ratio: 1.092
  Cumulative Time 413.408 compiled 232.706 ratio 1.777

  ExuperyBenchmarks>>arithmeticLoop 103ms
  SmallInteger>>benchmark 341ms
  InstructionStream>>interpretExtension:in:for: 6069ms
  Average 597.360

Next up dynamic inlining of entire methods. Exupery already
dynamically inlines a few primitive calls.

Discussion about Exupery is here:

  http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery

Bryce

P.S. Reposting because the subject line and headers got messed
up the first time around.



More information about the Squeak-dev mailing list