[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:
http://source.squeak.org/VMMaker/VMMaker-dtl.377.mcz
==================== 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') -----
primitiveResume
"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') -----
versionString
"VMMaker versionString"
+ ^'4.15.3'!
- ^'4.15.2'!
More information about the Vm-dev
mailing list