[Vm-dev] New Cog VMs available

Eliot Miranda 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
be voided.

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...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20140929/119dfa56/attachment.htm

More information about the Vm-dev mailing list