VM Maker: VMMaker.oscog-eem.2070.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

VM Maker: VMMaker.oscog-eem.2070.mcz

commits-2
 
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2070.mcz

==================== 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

CoInterpreter:
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') -----
  commenceCogCompiledCodeCompaction
+ "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]!