<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hi,</p>
<p class="MsoNormal">I get this error when starting a fresh updated image with this squeak.cog.spur_win64x64 VM on latest Win 10 x64</p>
<p class="MsoNormal"><img width="301" height="267" style="width:3.1354in;height:2.7812in" id="Picture_x0020_3" src="cid:image001.png@01D81BB7.6925CE00"></p>
<p class="MsoNormal">Thanks for help,</p>
<p class="MsoNormal">jaromir</p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a><br>
<b>Sent: </b>Sunday, February 6, 2022 22:52<br>
<b>To: </b><a href="mailto:vm-dev@lists.squeakfoundation.org">vm-dev@lists.squeakfoundation.org</a><br>
<b>Subject: </b>[Vm-dev] VM Maker: VMMaker.oscog-eem.3147.mcz</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3147.mcz">http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3147.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.3147<br>
Author: eem<br>
Time: 6 February 2022, 1:51:16.763917 pm<br>
UUID: 409be388-ed75-49dc-a648-c7051eb48168<br>
Ancestors: VMMaker.oscog-eem.3146<br>
<br>
Fix regressions in the stack interpreter generated sources from VMMaker.oscog-eem.3144, and in primitiveSupend[V2] from VMMaker.oscog-eem.3142,VMMaker.oscog-eem.3134,VMMaker.oscog-eem.3127.<br>
<br>
=============== Diff against VMMaker.oscog-eem.3146 ===============<br>
<br>
Item was removed:<br>
- ----- Method: CoInterpreter>>accessorDepthForExternalPrimitiveMethod: (in category 'plugin primitive support') -----<br>
- accessorDepthForExternalPrimitiveMethod: methodObj<br>
- <option: #SpurObjectMemory><br>
- | flags lit |<br>
- self assert: (self isLinkedExternalPrimitive: methodObj).<br>
- lit := self literal: 0 ofMethod: methodObj.<br>
- flags := objectMemory fetchPointer: ExternalCallLiteralFlagsIndex ofObject: lit.<br>
- ^(objectMemory integerValueOf: flags) >>> SpurPrimitiveAccessorDepthShift!<br>
<br>
Item was removed:<br>
- ----- Method: CoInterpreter>>isLinkedExternalPrimitive: (in category 'plugin primitive support') -----<br>
- isLinkedExternalPrimitive: methodObj<br>
- | header primIdx literal targetFunctionIndex |<br>
- header := objectMemory methodHeaderOf: methodObj.<br>
- primIdx := self primitiveIndexOfMethod: methodObj header: header.<br>
- ^primIdx = PrimNumberExternalCall<br>
- and: [(objectMemory literalCountOfMethodHeader: header) > 0<br>
- and: [(objectMemory isArray: (literal := self literal: 0 ofMethod: methodObj))<br>
- and: [(objectMemory numSlotsOf: literal) = 4<br>
- and: [targetFunctionIndex := objectMemory fetchPointer: ExternalCallLiteralTargetFunctionIndex ofObject: literal.<br>
- (objectMemory isIntegerObject: targetFunctionIndex)<br>
- and: [(objectMemory integerValueOf: targetFunctionIndex) > 0]]]]] "A 0 byte module name implies a primitive in the main VM; these can't change"!<br>
<br>
Item was added:<br>
+ ----- Method: StackInterpreter>>accessorDepthForExternalPrimitiveMethod: (in category 'plugin primitive support') -----<br>
+ accessorDepthForExternalPrimitiveMethod: methodObj<br>
+ <option: #SpurObjectMemory><br>
+ | flags lit |<br>
+ self assert: (self isLinkedExternalPrimitive: methodObj).<br>
+ lit := self literal: 0 ofMethod: methodObj.<br>
+ flags := objectMemory fetchPointer: ExternalCallLiteralFlagsIndex ofObject: lit.<br>
+ ^(objectMemory integerValueOf: flags) >>> SpurPrimitiveAccessorDepthShift!<br>
<br>
Item was added:<br>
+ ----- Method: StackInterpreter>>isLinkedExternalPrimitive: (in category 'plugin primitive support') -----<br>
+ isLinkedExternalPrimitive: methodObj<br>
+ | header primIdx literal targetFunctionIndex |<br>
+ header := objectMemory methodHeaderOf: methodObj.<br>
+ primIdx := self primitiveIndexOfMethod: methodObj header: header.<br>
+ ^primIdx = PrimNumberExternalCall<br>
+ and: [(objectMemory literalCountOfMethodHeader: header) > 0<br>
+ and: [(objectMemory isArray: (literal := self literal: 0 ofMethod: methodObj))<br>
+ and: [(objectMemory numSlotsOf: literal) = 4<br>
+ and: [targetFunctionIndex := objectMemory fetchPointer: ExternalCallLiteralTargetFunctionIndex ofObject: literal.<br>
+ (objectMemory isIntegerObject: targetFunctionIndex)<br>
+ and: [(objectMemory integerValueOf: targetFunctionIndex) > 0]]]]] "A 0 byte module name implies a primitive in the main VM; these can't change"!<br>
<br>
Item was changed:<br>
----- Method: StackInterpreter>>transferTo: (in category 'process primitive support') -----<br>
transferTo: newProc <br>
"Record a process to be awoken on the next interpreter cycle."<br>
| activeContext sched oldProc |<br>
<inline: false><br>
statProcessSwitch := statProcessSwitch + 1.<br>
self push: instructionPointer.<br>
self externalWriteBackHeadFramePointers.<br>
self assertValidExecutionPointe: instructionPointer + 1 r: framePointer s: stackPointer.<br>
sched := self schedulerPointer.<br>
oldProc := objectMemory fetchPointer: ActiveProcessIndex ofObject: sched.<br>
activeContext := self ensureFrameIsMarried: framePointer SP: stackPointer + objectMemory wordSize.<br>
objectMemory storePointer: SuspendedContextIndex ofObject: oldProc withValue: activeContext.<br>
objectMemory storePointer: ActiveProcessIndex ofObject: sched withValue: newProc.<br>
objectMemory storePointerUnchecked: MyListIndex ofObject: newProc withValue: objectMemory nilObject.<br>
+ self externalSetStackPageAndPointersForSuspendedContextOfProcess: newProc.<br>
+ ^0 "to allow primitiveSuspend[V2] to exit early by returning the result of transferTo:"!<br>
- self externalSetStackPageAndPointersForSuspendedContextOfProcess: newProc!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>