Eliot Miranda uploaded a new version of VMMaker to project VM Maker: http://source.squeak.org/VMMaker/VMMaker.oscog-cb.1260.mcz
==================== Summary ====================
Name: VMMaker.oscog-cb.1260 Author: cb Time: 27 April 2015, 10:31:56.371 am UUID: 5727199d-3cf7-4bc6-b881-d17da3761458 Ancestors: VMMaker.oscog-cb.1259
After hours of debugging, I realized an assertion was failing but the SistaVM is working :-/.
I fixed the trap logic. Now I'll compile the VM on linux and see what's going on.
=============== Diff against VMMaker.oscog-cb.1259 ===============
Item was changed: ----- Method: CoInterpreter>>ceSistaTrap (in category 'trampolines') ----- ceSistaTrap + "When we arrive here, the value that trapped is pushed on stack" <api> <option: #SistaVM> + | context | - | context obj | instructionPointer := self popStack. context := self ensureFrameIsMarried: framePointer SP: stackPointer. - "If there is a trap, the object is supposed to remain on - the stack, but the cogit always removes it. So restore it here." - obj := self stackTop. self push: context. - self push: obj. self push: instructionPointer. ^self ceSendAbort: (objectMemory splObj: SelectorSistaTrap) to: context numArgs: 1!
Item was changed: ----- Method: StackInterpreter>>respondToSistaTrap (in category 'sista bytecodes') ----- respondToSistaTrap + | ourContext | - | ourContext tos | <sharedCodeInCase: #unconditionnalTrapBytecode> messageSelector := objectMemory splObj: SelectorSistaTrap. - tos := self internalPopStack. ourContext := self ensureFrameIsMarried: localFP SP: localSP. - messageSelector = objectMemory nilObject ifTrue: - [self error: 'Sista trap but no trap selector installed']. self internalPush: ourContext. - self internalPush: tos. argumentCount := 1. self normalSend!
vm-dev@lists.squeakfoundation.org