InterpreterSimulator and friends

Michael van der Gulik squeakml at
Sun Jun 25 05:05:44 UTC 2006

Thanks for the quick reply!

It might be useful adding the following information to

- How to find the Squeak-VM mailing list.

- Where the code is and how to get it (i.e. svn:// and 

- How to contribute changes.


tim Rowledge wrote:

> On 23-Jun-06, at 8:49 PM, Michael van der Gulik wrote:
>> Hi all.
>> Where is the latest stable version of VMMaker? Is it  
>> VMMaker-3.8b6.mcz from SqueakMap
> Yes
>> , or VMMaker-tpr-5.mcz (which seems old) from
> 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 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
> -- 
> tim Rowledge; tim at;
> Press [ESC] to detonate or any other key to explode.

More information about the Vm-dev mailing list