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