at http://www.mirandabanda.org/files/Cog/VM/VM.r2673. Fix becomeForward: when the rootTbale overflows. There were two bugs here. One is that initializeMemoryFirstFree: used to clear the needGCFlag so if the rootTable overflowed noteAsRoot:headerLoc:'s setting of the needGCFlag would be undone after the sweep. The other is that rooitTable overflow was indicated by rootTableCount >= RootTableSize which could be undone by becomeForward: freeing roots which need to be removed from the rootTable. At some point in becomeForward the rootTable would fill but at a later point a root would be freed, causing the table to become not full. The fix is two fold. 1. Add an explicit rootTableOverflowed flag instead of relying on rootTableCount >= RootTableSize. 2. move the clearing of the needGCFlag to the GC routines. Remove unnecessary senders of needGCFlag: false, and remove the accessor. As a side effect rewrite primitiveRootTable in terms of a new ObjectMemory>>rootTableObject. Remove the rootTable: accessor. Implement checkAllAccessibleObjectsOkay & checkOkayInterpreterObjects: (used to debug the above). Fix NewObjectMemory initialization to set freeStart at the same time as setting endOfMemory. This allows load-time scans and assert code to use freeStart instead of endOfMemory. Simplify markAndTraceStackPage: ; since the two implementations are distinct they don't need to contain the isCog if-then-else. Implement NewObjectMemory>>shorten:toIndexableSize: so that the last object is correctly shortened (cut back freeStart). Refactor the allocation check filling code into maybeFillWithAllocationCheckFillerFrom:to:. Make longPrintOop: print the class oop. Fix bug in printCallStackOf:currentFP: for widowed contexts. Use fputs for print: instead of printf. Rewrite the stackLimit computation after a moment of clarity. Allow the system to reduce the space for frames by up to an 1/8th. Make sure there's at least as much headroom as asked for. This changes the stack page size from 4096 to 2048 and much reduces the interpreterAllocationReserveBytes. Don't round up interpreterAllocationReserveBytes to a power of two. Integrate the named serial primitives plus Luc Fabresse's latest fix. Improve cygwin HoiwToBuilds with info on latest versions (thanks Ron). -- best, Eliot