[Vm-dev] VM Maker: VMMaker-dtl.377.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Feb 27 22:24:57 UTC 2016

David T. Lewis uploaded a new version of VMMaker to project VM Maker:

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

Name: VMMaker-dtl.377
Author: dtl
Time: 27 February 2016, 5:17:20.567 pm
UUID: 80df7d73-9bc3-484e-a4ff-45e6d2e8d0dc
Ancestors: VMMaker-tfel.376

VMMaker 4.15.3

For Interpreter>>primitiveResume: add check for isContext: required for Squeak trunk as of Kernel-eem.1000 and above.

Background - see Kernel-eem.1000 in Squeak trunk, update comment repeated here for reference:
Make Process>>resume primitive.  Andreas fixed the ancestor of the Cog VM so that the resume primitive fails if the suspendedContext is not a context.  This renders Tim's suspendedCOntext ifNil: [^self primitiveFailed] guard obsolete.  Hence nuke primitiveResume.

Remove <inline: false> from Interpreter>>resume: because it is no longer required. The inliner is much improved since early days, and many other <inline: false> directives can probably also be removed, but that can be the subject of a later update.

=============== Diff against VMMaker-tfel.376 ===============

Item was changed:
  ----- Method: Interpreter>>primitiveResume (in category 'process primitives') -----
  	"Put this process on the scheduler's lists thus allowing it to proceed next
  	time there is a chance for processes of its priority level"
  	| proc |
  	proc := self stackTop.  "rcvr"
  	"self success: ((self fetchClassOf: proc) = (self splObj: ClassProcess))."
+ 	(self isContext: (objectMemory fetchPointer: SuspendedContextIndex ofObject: proc)) ifFalse:
+ 		[^self primitiveFail].
  	self successful ifTrue: [ self resume: proc ].!

Item was changed:
  ----- Method: Interpreter>>resume: (in category 'process primitive support') -----
  resume: aProcess 
  	| activeProc activePriority newPriority |
- 	<inline: false>
  	activeProc := objectMemory fetchPointer: ActiveProcessIndex ofObject: self schedulerPointer.
  	activePriority := self quickFetchInteger: PriorityIndex ofObject: activeProc.
  	newPriority := self quickFetchInteger: PriorityIndex ofObject: aProcess.
  	newPriority > activePriority
  		ifTrue: [self putToSleep: activeProc.
  			self transferTo: aProcess]
  		ifFalse: [self putToSleep: aProcess]!

Item was changed:
  ----- Method: VMMaker class>>versionString (in category 'version testing') -----
  	"VMMaker versionString"
+ 	^'4.15.3'!
- 	^'4.15.2'!

More information about the Vm-dev mailing list