[Vm-dev] new Cog VMs available

Eliot Miranda eliot.miranda at gmail.com
Fri Jan 18 21:26:26 UTC 2013


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20130118/2ce78b89/attachment.htm


More information about the Vm-dev mailing list