<div dir="ltr">... at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3085/">http://www.mirandabanda.org/files/Cog/VM/VM.r3085/</a>.<div><br></div><div><div><div>CogVM binaries as per VMMaker.oscog-eem.887/r3085<br></div><div><br></div><div>Spur:</div><div>Change become to flush method caches for becommed classes.</div><div><br></div><div>Changes are to</div><div>- add a BecameActiveClassFlag to becomeEffectsFlags</div><div>- refuse to do an in-place become on active classes.</div><div>- flush the caches before the post-become scan of the class table so that</div><div>forwarded classes can be spotted.  i.e. if a class index in a method cache</div><div>is that of a forwarded class then it was becommed and the cache entry can</div><div>be voided.</div><div><br></div><div>Fix bug in sweepToFollowForwardersForPigCompact which failed to update and</div><div>answer lowest forwarder.  Fixes numForwarders == 0 assert failures.</div><div><br></div><div>Fix bug with become and class table not removing</div><div>classes which become causes them to be unhashed.</div><div><br></div><div>Fix bogus assert fail in synchronousSignal:. Refactor following code into</div><div>ensureSemaphoreForwardedThroughContext: and fix the assert there-in.</div><div><br></div><div>Use rawOverflowSlotsOf: in bytesInObject:.</div><div><br></div><div>Cogit:</div><div>Make sure voidImplicitReceiverCacheAt: sets codeModified if IRCs are inline.</div><div><br></div><div>Make sure freeMethod: clears cmRefersToYoung</div><div><br></div><div>Fix assert in cogitPostGCAction: that would fire erroneously in Spur become.</div><div><br></div><div>Fix regression in V3 become youngReferrers management in VMMaker.oscog-eem.882.</div><div>We /must/ prune young referrers if mapObjectReferencesInMachineCodeForBecome</div><div>removes a cog method from youngReferrers because it may get added back and</div><div>youngReferrers cannot contain duplicates.</div><div><br></div><div>Fix potential bug in Spur become argument validation.  Check for immediates</div><div>needs to come /after/ following forwarders since an object can become-forward</div><div>to an immediate.</div><div><br></div><div>Fix cPICHasForwardedClass:; this did /not/</div><div>enumerate the classIndices in a Spur Closed PIC.</div><div><br></div><div>Install the callPrimitiveBytecode in the Interpreter&#39;s</div><div>bytecodeDispatchTable on Spur.</div><div><br></div><div>Modify callPrimitiveBytecode to not invoke unknownBytecode processing if at the</div><div>first bytecode of a primitive method.</div><div><br></div><div>Correct sign comparison of instructionPointer in justActivateNewMethod.</div><div><br></div><div>Relax the validInstructionPointer:inMethod:framePointer:</div><div>assert to accept any pc in initialPC to self size range</div><div>now that callPrimitiveBytecode is more forgiving.</div><div><br></div><div>Speed up primitiveMarkUnwindMethod &amp; primitiveMarkHandlerMethod in the</div><div>StackInterpreter by setting them to 0 in the primitive table.</div></div><div><br></div><div>-- <br></div>best,<div>Eliot</div>
</div></div>