Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Installing Exupery
Last updated at 9:12 pm UTC on 3 September 2007
Installing Exupery is fairly simple. Exupery does need a custom VM to run, the compiler can be installed without it but it's impossible to run compiled code. You can always switch back to a stock VM after installing Exupery, only Exupery will stop working.

Installing Exupery


Previous VMs are here http://ftp.squeak.org/Exupery/vms/.

NOTE: Exupery 0.09 needs VMMaker loaded to run. This is because it's calling an extension method on Array provided by VMMaker.

A prebuilt image

There is a prebuilt image baseed on the squeak-dev developer image here: http://ftp.squeak.org/Exupery/images/exupery-0.10.tz

Using Exupery

Exupery compiles to a native code cache. This cache can be flushed by re-initialising it
with "Exupery initialiseExupery" which recover from bugs in compiled code. Methods have to
be explicitly compiled.


Then to compile specific methods by hand.

Using the compiling profiler

The 0.07 release introduces a compiling profiler. This profiler will compile the top 10 most frequently
used methods in the block. It's the beginning of an automated driver. The aim is to balance ease of use
with some predictability. A full JIT is a little too uncontrolled while doing the initial alpha testing.

ExuperyProfiler profileAndCompile: [Array allInstances explore]

Will compile the top ten methods used when opening a large explorer. Unfortunately often not enough is
compiled to speed up real programs, I'm working on that.

Summary


At the moment Exupery is just a compiler, you need to tell it what you want it to compile. This is deliberate, while it's still under active development it's easier to debug if I know what I compiled. There is a profiler that can be used to drive the compiler (ExuperyProfiler).

Ways to help


The current goal is to make Exupery useful. To do this I need to understand where a significant
speed improvement would be useful, useful enough use a beta compiler. The easiest way to help is
to play with Exupery (currently only possible on Linux/x86 32 bit) and help work out what's minimally
needed to be useful.

Pointers