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