Building a VM for Exupery on Linux/x86

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Building a VM for Exupery on Linux/x86

Andrew Gaylard
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?

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery

build-exupery-vm.sh (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Building a VM for Exupery on Linux/x86

Andrew Tween
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



_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: Building a VM for Exupery on Linux/x86

Andrew Gaylard
On 1/12/07, Andrew Tween <[hidden email]> 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.


_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Building a VM for Exupery on Linux/x86

Bryce Kampjes
In reply to this post by Andrew Gaylard

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