Exupery 0.11rc1 is out

bryce at kampjes.demon.co.uk bryce at kampjes.demon.co.uk
Fri Mar 2 19:30:14 UTC 2007


Hi sorry about the delay in answering this, more below.

Andrew Gaylard writes:
 > 
 > Hi Bryce,
 > 
 > By all means feel free to use my script as documentation.
 > However, be warned that it doesn't work yet!  What I sent was
 > a first pass, to see if there was interest from the rest of the
 > Exupery community, and to get some feedback (thanks, BTW).

I've decided not to include the script in the release though the
process of setting up VM building environments definitely needs some
work. The VM build problems are shared with the main interpreter,
ideally any solution we adopt for Exupery should be acceptable for the
normal VMs too.

 > I'm keen to have a way building an Exupery image starting
 > only with the basic bits: the VM source, a vanilla (released)
 > image, etc.  The reason for this is that I'm keen to try porting
 > Exupery to other CPUs, and this seemed like a good starting
 > point.  Also, I feel that being able to recreate the whole
 > Exupery environment (VM + image) would lower the barrier
 > to entry for others who might be interested in working on the
 > compiler.
 > 
 > As a rule, I try to build images from scratch where possible,
 > to know exactly what went into them, in what order; using a
 > program to build them automates the whole process nicely.

A basic Exupery image should be just the base image with Exupery
loaded. There's no reason for other dependencies. There is currently
a dependency on VMMaker for a class extension method. The other
dependencies are just classes some of the tests use. Those tests
were created to capture bugs.

 > I feel that making Exupery able to target many CPUs might
 > shake out some latent bugs (alignment, endianness,
 > word-size, ABI, and so on).  And I have various machines
 > for testing: x86, SPARC, HPPA, Alpha, and ARM, giving a
 > good mix of LE/BE and 32-/64-bit.

It would definitely be great to have a CPU port. I'd either try to
do a 32 bit port or port to AMD64.

Exupery should be portable but there's a few details that are not
yet well encapsulated including the C calling conventions used both
to enter Exupery from the interpreter and to call helper functions.

There are two separate images available for 64 bit Squeak. One can
run 32 bit images and the other runs 64 bit images. Running a 32 bit
image on a 64 bit machine requires all memory access to be indirected
through a base pointer. 

Exupery doesn't deal with bytes directly so byte endianness is
probably not an issue yet but it also doesn't separate out addressing
operations which would be 64 bits from slot accessing which could be
32 bits.

Given that, it would make sense to start either the easiest possible
64 bit port, or do a 32 bit port.

To do a port you'd just need to get the VM building on the platform
you want to port to. More VM building work would be nice but not
required. Squeak's ported to many platforms, ideally any build
automation should be at least as portable as Squeak.

Bryce


More information about the Exupery mailing list