<div dir="ltr">...at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3058">http://www.mirandabanda.org/files/Cog/VM/VM.r3058</a>/.<br clear="all"><div><br></div><div><div>CogVM binaries as per VMMaker.oscog-eem.842/r3058<br>
</div><div><br></div><div>Spur:</div><div>Provide unpinObject: for InterpreterProxy.</div><div><br></div><div>Fix initialization of the heap-resident remembered set added by</div><div>VMMaker.oscog-eem.827.  It must be created /after/ old space is initialized.</div>
<div><br></div><div>Fix two become bugs surfaced when adding/removing inst vars to/from Association,</div><div>Binding et al.  First, the class table must be scanned to ensure there are no</div><div>forwarders to classes (much cheaper than the full hierarchy walk to follow</div>
<div>method dictionaries etc that was done).  Second, machine code methods that gain</div><div>a new reference through become must get added to the youngReferrers.  Add a new</div><div>become effect flag, OldBecameNew that captures this and respond to it in</div>
<div>CoInterpreter&gt;&gt;postBecomeAction: by adding all methods to youngReferrers so</div><div>that on the next scavenge all will be made right.</div><div><br></div><div>Fix GC of machine code, which must follow forwarders when doing</div>
<div>markAndTraceLiteral: and again add to youngReferrers if following</div><div>gains a new ref.  Refactoring of markAndTraceLiteral: into</div><div>markAndTraceLiteral:in:at: et al required.</div><div><br></div><div>Fix assert in addFreeSubTree:.</div>
<div><br></div><div>General:</div><div>Support the alternate bytecode set header in all VMs to ease testing of</div><div>multiple bytecode sets.  This means methods with the sign bit set have</div><div>no primitive field and a larger num literals field, but no more.</div>
<div><br></div><div>Fix longPrintOop: (actually printOopShortInner:) for</div><div>global variable printing in face of new Environments.</div><div><br></div><div>Cogit:</div><div>Clean up adding to the youngReferrers by providing ensureInYoungReferrers:.</div>
<div>Since there always is room on youngReferrers, nuke roomOnYoungReferrersList,</div><div>canLinkToYoungClasses and caller code, simplifying ceSend:super:to:numArgs: etc.</div><div><br></div><div>Fix assert in followForwardedLiteralsIn:</div>
<div><br></div><div>General:</div><div>Change the scanning for initial nils scheme in the StackToRegisterMappingCogit</div><div>to answer the number of push nils in a bytecode, instead of whether the</div><div>bytecode is a push nil.  Refactor genReturnTopFromBlock into genBlockReturn.</div>
<div>These changes accomodate Sista.</div><div><br></div><div>Rationalize the length functions, deleting byteLengthOf:, fetchLong32LengthOf:</div><div>&amp; fetchWordLengthOf: and providing numBytesOf:, num16BitUnitsOf:,</div>
<div>num32BitUnitsOf:, num64BitUnitsOf: and numBytesOf:.</div><div><br></div><div>Provide fetch/storeShort16:ofObject:[withValue:] and</div><div>fetch/storeLong64:ofObject:[withValue:].</div></div><div><br></div>-- <br>best,<div>
Eliot</div>
</div>