Eliot Miranda uploaded a new version of Cog to project VM Maker: http://source.squeak.org/VMMaker/Cog-eem.199.mcz
==================== Summary ====================
Name: Cog-eem.199 Author: eem Time: 27 August 2014, 4:55:58.736 pm UUID: 0291b9f2-a3b9-4b87-ae19-873bec4af1d0 Ancestors: Cog-eem.198
Spur bootstrap: Add a stack depth check to interpreter:object:perform: withArguments: to catch errors before invoking a GC etc.
=============== Diff against Cog-eem.198 ===============
Item was changed: ----- Method: SimulatorHarness>>interpreter:object:perform:withArguments: (in category 'bootstrap methods') ----- interpreter: sim object: receiver perform: selector withArguments: arguments "Interpret an expression in oldHeap using oldInterpreter. Answer the result." + | fp savedpc savedsp savedStackPages result startByteCount | - | fp savedpc savedsp result startByteCount | self assert: ({receiver. selector}, arguments allSatisfy: [:oop| oop isInteger and: [sim objectMemory addressCouldBeOop: oop]]). savedpc := sim localIP. savedsp := sim localSP. + savedStackPages := Set with: sim stackPage. sim internalPush: receiver. arguments do: [:arg| sim internalPush: arg]. sim argumentCount: arguments size; messageSelector: selector. fp := sim localFP. startByteCount := sim byteCount. "sim byteCount = 66849 ifTrue: [self halt]." sim normalSend. sim incrementByteCount. "otherwise, send is not counted" ["sim printFrame: sim localFP WithSP: sim localSP" "sim setBreakSelector: #elementsForwardIdentityTo:" "sim byteCount = 66849 ifTrue: [self halt]." "(sim byteCount > 7508930 and: [sim localFP = -16r27894]) ifTrue: [self halt]." fp = sim localFP] whileFalse: + [sim singleStep. + (savedStackPages includes: sim stackPage) ifFalse: "If the stack gets deep something has probably gone wrong..." + [savedStackPages size > 3 ifTrue: [self halt]. + savedStackPages add: sim stackPage]]. - [sim singleStep]. result := sim internalPopStack. self assert: savedsp = sim localSP. self assert: sim localIP - 1 = savedpc. sim localIP: savedpc. ^result!
vm-dev@lists.squeakfoundation.org