Hi,
I've just started poking around with Exupery, and thought I'd try building the whole lot from scratch.
This turned out to be harder than I expected. When I finally got something that worked, I thought I'd turn the process into a script to make it easier for anyone else who's come up against this.
If you'd like to try this, you need a Linux PC, with X and the necessary development tools installed (gcc, etc.). You don't need a working squeak installation.
The script first downloads the necessary bits, before building a plain 3.9 VM. It then runs VMMaker in this VM to generate the new bits, before finally building the Exupery VM.
Some notes:
* After the script completes, you'll be left with two functional VMs. By default, they're installed in /opt/squeak-3.9-8 and /opt/squeak-3.9-8-exupery. You just need to alter your PATH to pick the one you want. * You'll have to make your /opt writable by the user who runs the script (or choose other locations). * During the VMMaker process, squeak requests your initials. I haven't figured out how to get the Squeak installer to respond automatically, so you'll have to respond manually for now. * For some reason, the UUIDPlugin and B3DAcceleratorPlugin had problems compiling. So I've left them out.
The new VM and image run most of the tests correctly. However, I'm seeing these 16 errors from the Programmer-tests:
AssemblerTests>>#testDoublePicEntry AssemblerTests>>#testPic AssemblerTests>>#testPicEntry AssemblerTests>>#testPicEntry2 ByteCodeReaderTests>>#testStackHeightWithJumps InstructionSelectionTests>>#testPic InterferenceGraphGenerationTests>>#testPic IntermediateSimplifierTests>>#testBytecodePrimNewWithArg IntermediateSimplifierTests>>#testSendMessage IntermediateSimplifierTests>>#testSendMessageCheckingPicEntry IntermediateSimplifierTests>>#testSendWithStack IntermediateSimplifierTests>>#testSendWithStack2 LivenessAnalysisTests>>#testPic LowLevelOptimiserTests>>#testPic TestEndToEnd>>#testBenchFib TestEndToEnd>>#testStringConcatenate
I'm also seeing these errors from the Customer-tests:
ExuperyStoryTests>>#testBlockBug3 ExuperyStoryTests>>#testBlockNonLocalReturnsRecycleContexts ExuperyStoryTests>>#testBlocksAndProcesssesBug ExuperyStoryTests>>#testDelayWaitStressTest
Should these work? If so, what have I missed?
Thanks, Andrew.
PS: Sory for the long mail, but I tried adding this info to the "Building Exupery on Unix" wiki page (http://wiki.squeak.org:8080/squeak/5672), but my login was rejected.
PPS: I'm completely unable to use the wiki on port 80. Apparently, this is due to the site rejecting proxied connections. However, Internet connections without transparent proxying are _extremely_ rare in my neck of the woods. Are there any plans to sort this out?
Hi Andrew, <snip>
- During the VMMaker process, squeak requests your initials. I haven't figured out how to get the Squeak installer to respond automatically, so you'll have to respond manually for now.
You could try adding this to the start of the script...
Utilities authorInitialsPerSe isEmpty ifTrue:[Utilities setAuthorInitials: 'XYZ'].
Cheers, Andy
On 1/12/07, Andrew Tween amtween@hotmail.com wrote:
Hi Andrew,
<snip> >* During the VMMaker process, squeak requests your initials. I > haven't figured out how to get the Squeak installer to respond > automatically, so you'll have to respond manually for now.
You could try adding this to the start of the script...
Utilities authorInitialsPerSe isEmpty ifTrue:[Utilities
setAuthorInitials: 'XYZ'].
Thanks! Any idea on the failing tests?
Andrew.
Thanks, I'll look at the script later, I've got to go out to pick up overseas family from the airport soon. You should be able to post to the swiki, if you can't then it's probably worthwhile posting to #squeak-dev.
Andrew Gaylard writes:
The new VM and image run most of the tests correctly. However, I'm seeing these 16 errors from the Programmer-tests:
AssemblerTests>>#testDoublePicEntry AssemblerTests>>#testPic AssemblerTests>>#testPicEntry AssemblerTests>>#testPicEntry2 ByteCodeReaderTests>>#testStackHeightWithJumps InstructionSelectionTests>>#testPic InterferenceGraphGenerationTests>>#testPic IntermediateSimplifierTests>>#testBytecodePrimNewWithArg IntermediateSimplifierTests>>#testSendMessage IntermediateSimplifierTests>>#testSendMessageCheckingPicEntry IntermediateSimplifierTests>>#testSendWithStack IntermediateSimplifierTests>>#testSendWithStack2 LivenessAnalysisTests>>#testPic LowLevelOptimiserTests>>#testPic TestEndToEnd>>#testBenchFib TestEndToEnd>>#testStringConcatenate
These are failing because when they ran Exupery's runtime wasn't initialised. Either run the tests again as the ExuperyStoryTests all initialise the runtime or execute "Exupery initialiseExupery" before running the tests.
They don't execute code but do compile it. This allocates memory for PIC bookkeeping but that memory isn't availible until after Exupery has been initialised. Initialising Exupery is a slow operation because it needs to clean out all compiled contexts which requires two sends to allInstancesOf (a full memory scan).
I'm also seeing these errors from the Customer-tests:
ExuperyStoryTests>>#testBlockBug3 ExuperyStoryTests>>#testBlockNonLocalReturnsRecycleContexts ExuperyStoryTests>>#testBlocksAndProcesssesBug ExuperyStoryTests>>#testDelayWaitStressTest
They should work but rely on packages that you probably don't have loaded.
Try loading GraphViz and OSProcess. The pre-built Exupery development image includes all needed packages for the tests.
Thanks Bryce
exupery@lists.squeakfoundation.org