Thanks for the quick reply!
It might be useful adding the following information to SqueakVM.org:
- How to find the Squeak-VM mailing list.
- Where the code is and how to get it (i.e. svn://squeakvm.org/... and SqueakMap).
- How to contribute changes.
tim Rowledge wrote:
On 23-Jun-06, at 8:49 PM, Michael van der Gulik wrote:
Where is the latest stable version of VMMaker? Is it VMMaker-3.8b6.mcz from SqueakMap
, or VMMaker-tpr-5.mcz (which seems old) from SqueakSource.com?
No - after a few attempts with squeaksource a long time ago I gave up; not particularly because of any fault but it simply didn't suit my working habits.
Or somewhere else?
Nope. SM is it.
I see that squeakvm.org has an SVN server, but where do you keep your Monticello files?
When the swiki is running (I can't access it right now) search for VMMaker and you should find all the documentation you need. If you don't, let us know what you think it missing and it has a chance of getting improved! I don't keep all the MC files publically accessible because intermediate states are normally not usable. Releases on SM are known to have built working VMs on at least two OSs.
I've got a bug, probably in my code but maybe in the VM, involving becomeForward:copyHash:. The primitive is failing for no apparant reason. I plan to try running this code in the InterpreterSimulator to find exactly why primitive 239 is failing.
The immediate things I can think of involve some checks early in the prim that protect you against catastrophe. Comment from ObjectMemory>prepareForwardingTableForBecoming: array1 with: array2 twoWay: twoWayFlag "Important note on multiple references to same object - since the preparation of fwdBlocks is NOT idempotent we get VM crashes if the same object is referenced more than once in such a way as to require multiple fwdBlocks. oop1 forwardBecome: oop1 is ok since only a single fwdBlock is needed. oop1 become: oop1 would fail because the second fwdBlock woudl not have the actual object header but rather the mutated ref to the first fwdBlock. Further problems can arise with an array1 or array2 that refer multiply to the same object. This would notbe expected input for programmer writen code but might arise from automatic usage such as in ImageSegment loading. To avoid the simple and rather common case of oop1 become*: oop1, we skip such pairs and simply avoid making fwdBlocks - it is redundant anyway"
Currently I've tried both VMMaker-tpr.58.mcz and VMMaker-3.8b6.mcz, but the InterpreterSimulator doesn't want to work.
I make no guarantee on the state of InterpreterSimulator. I was under the impression that it was functional in the current version, mostly because of a lot of work Craig did to support his Spoon project. I simply don't have enough spare time to do all the work and the simulator is one area I have to leave for others to worry about.
I get a DNU, which I fixed, but then I get another DNU, which I fixed, but then I got another, so I threw the whole thing away in disgust. I have a bog standard 32-bit AMD-based PC running Ubuntu.
Sometimes you just have to keep bashing those balrogs.
tim Rowledge; firstname.lastname@example.org; http://www.rowledge.org/tim Press [ESC] to detonate or any other key to explode.