[Vm-dev] VM Maker: VMMaker.oscog-eem.2070.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Jan 4 22:29:29 UTC 2017

Eliot Miranda uploaded a new version of VMMaker to project VM Maker:

==================== Summary ====================

Name: VMMaker.oscog-eem.2070
Author: eem
Time: 4 January 2017, 2:28:39.632529 pm
UUID: ada3d477-75ba-48e3-b468-2269b791f62b
Ancestors: VMMaker.oscog-eem.2069

Make the stack depth check for abort sends consistent with normal sends.  Add a stack chec for activating processes.  Print non-local return info when there's an unwind to the transcript to aid debugging the wrong stack depth on some non-local returns issue.

No longer halt on code compaction; its utility/annoyance ratio is now too small.

=============== Diff against VMMaker.oscog-eem.2069 ===============

Item was changed:
  ----- Method: CogVMSimulator>>ceSendAbort:to:numArgs: (in category 'trampolines') -----
  ceSendAbort: selector to: rcvr numArgs: numArgs
  	"self stringOf: selector"
  	"self printOop: rcvr"
  	self logSend: selector.
  	cogit assertCStackWellAligned.
+ 	self maybeCheckStackDepth: numArgs + 1
+ 		sp: stackPointer
- 	self maybeCheckStackDepth: (selector = (objectMemory splObj: SelectorAboutToReturn)
- 										ifTrue: [numArgs]
- 										ifFalse: [numArgs + 1])
- 		sp: stackPointer + objectMemory wordSize
  		pc: (stackPages longAt: stackPointer).
  	^super ceSendAbort: selector to: rcvr numArgs: numArgs!

Item was changed:
  ----- Method: CogVMSimulator>>commenceCogCompiledCodeCompaction (in category 'cog jit support') -----
+ 	"self halt."
- 	self halt.
  	^super commenceCogCompiledCodeCompaction!

Item was added:
+ ----- Method: CogVMSimulator>>externalAboutToReturn:through: (in category 'return bytecodes') -----
+ externalAboutToReturn: resultOop through: aContext
+ 	self transcript ensureCr.
+ 	self print: 'externalAboutToReturn: '; printOopShortInner: resultOop;
+ 		print: ' through: '; printOopShortInner: aContext;
+ 		print: ' in '; printActivationNameFor: (self frameMethodObject: framePointer)
+ 					receiver: (self frameReceiver: framePointer)
+ 					isBlock: (self frameIsBlockActivation: framePointer)
+ 					firstTemporary: (self temporary: 0 in: framePointer);
+ 		cr.
+ 	^super externalAboutToReturn: resultOop through: aContext!

Item was added:
+ ----- Method: CogVMSimulator>>externalSetStackPageAndPointersForSuspendedContextOfProcess: (in category 'frame access') -----
+ externalSetStackPageAndPointersForSuspendedContextOfProcess: aProcess
+ 	"Override to check stack depth (hence in the simulator only)."
+ 	super externalSetStackPageAndPointersForSuspendedContextOfProcess:  aProcess.
+ 	(self isMachineCodeFrame: framePointer) ifTrue:
+ 		[self maybeCheckStackDepth: 0
+ 			sp: stackPointer
+ 			pc: instructionPointer]!

More information about the Vm-dev mailing list