<div dir="ltr">...at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3120/">http://www.mirandabanda.org/files/Cog/VM/VM.r3120/</a>.  These contain a few important bug fixes to Spur which will increase stability.<div><br clear="all"><div><div>CogVM binaries as per VMMaker.oscog-eem.916<br></div><div><br></div><div>Spur:</div><div>Reimplement deriving the accessorDepth and retrying primitives on primitive</div><div>failure machinery.  Always take the primitive index from newMethod (setting</div><div>newMethod to a SmallInteger for primitiveDoPrimitiveWithArgs.</div><div><br></div><div>Have the Cogit always set primitiveFunctionPointer and newMethod for the retry.</div><div><br></div><div>Add isNonInteger(Non)Immediate: and use it in several of</div><div>the integer conversion routines that were missing code</div><div>to exclude Character immediates, with fatal consequences.</div><div><br></div><div>With these changes the Pharo 4 test suite runs without</div><div>crashing on the latest Pharo Spur boot image.</div><div><br></div><div>Fix processWeakSurvivor: so that it answers whether a weak object refers</div><div>to a young object.  The old version only scanned weak fields, ignoring refs to</div><div>young objs from strong fields.</div><div><br></div><div>Move check for valid classes from findClassOfMethod: forReceiver: into</div><div>findClassContainingMethod:startingAt:, hence making</div><div>findClassOfMethod:forReceiver: et al more robust.</div><div><br></div><div>Implement safe access to contexts and methods when creating image segments</div><div>(since internally married contexts and jitted methods have hidden state encoded</div><div>in odd ways).</div><div><br></div><div>As a result:</div><div>Fix baaad bug in SpurMemoryManager&gt;&gt;lastPointerOf: for contexts, caused by</div><div>transcription from (New)ObjectMemory where the method works on a wing and a</div><div>prayer because BaseHeaderSize = BytesPerOop.  And I can&#39;t be arsed to fix it.</div><div><br></div><div>Fix baaad bug in accessibleObjectAfter: and add an assert to primitiveNextObject</div><div>to catch similar bugs.  Can now enumerate objects in new space, which will</div><div>sort-of work, but code should really use allObjects.  Will fix at the image</div><div>level as time allows.</div><div><br></div><div>Eliminate isInSurvivorSpace: in favour of the identical isInPastSpace:.</div><div><br></div><div>All:</div><div>Refactor decoding of context instruction pointers so</div><div>there is only one copy of the code.</div></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>