[ANN] Exupery, yet another compiler project

Andreas Raab andreas.raab at gmx.de
Fri Mar 28 00:39:26 UTC 2003


Hi Bryce,

A very interesting project indeed. I have been talking to Ian a little about
the possibilities of having a "numerical JIT" for just numerically heavy
methods with lots of specialization/inlining (in fact, the basic idea is to
inline about everything that's even halfways reasonable in order to go for
maximum speed). I'm not quite sure which direction you're heading but since
you were talking about "inner loops" I thought I'd mention it to you. I'm
essentially thinking to give those methods "primitive semantics" (which is
advantageous as you don't have to worry about stack switches etc) and try to
avoid allocations to the maximum amount possible (a killer for floating
point ops).

I'm interested in this because we really need to have more flexibility for
the heavy numerical stuff in Croquet and just using the pre-canned
primitives is often not sufficient (as you may imagine if you look for
example at some of the simulations like the flag or the waves). And besides,
any such numerical compiler would be tremendously helpful for sound
synthesis, image manipulation etc.

Cheers,
  - Andreas

> -----Original Message-----
> From: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] On 
> Behalf Of Bryce Kampjes
> Sent: Friday, March 28, 2003 1:09 AM
> To: squeak-dev at lists.squeakfoundation.org
> Subject: [ANN] Exupery, yet another compiler project
> 
> 
> 
> This is the first public release of Exupery, my byte code compiler,
> for Squeak. It doesn't yet do much but it is a documented example of
> test driven code.
> 
> The first useful goal is to compile inner loop methods. Hopefully it
> should be able to provide an alternative to Slang for some inner loop
> methods. The idea is to compile normal methods to machine code. This
> should provide a tolerable speed up with much less effort than Slang
> and hopefully get the compiler into real use early.
> 
> What would be the smallest subset of Squeak byte codes needed to be
> useful for just one project? Or which methods would it be worth while
> compiling first?
> 
> Exupery is available on SqueakMap and there is some documentation at
> http://www.kampjes.demon.co.uk/. Feedback on both the code and the the
> documentation is very much appreciated.
> 
> The compiler can compile a single method inside the image and run
> it. It is currently limited by the assembler. The system can produce
> tolerable code and includes a coloring register allocator. It's an
> architectural skeleton that is fully end to end.
> 
> The project dream is to soften the barrier between language
> implementation and normal development. It would be nice if playing
> around with a dynamic compiler was no more risky than modifying the
> collections classes. Also there are a large number of other projects
> that could use dynamic code generation.  The idea of live code
> generation is not new but hasn't been widely used. For instance,
> compiling regular expressions and LR grammars to machine code could
> make a Squeak implementation faster than in C if only we could do
> this without needing extremely hairy programming.
> 
> Bryce
> 



More information about the Squeak-dev mailing list