[Vm-dev] New CogVMs available
eliot.miranda at gmail.com
Thu Jul 24 18:13:49 UTC 2014
... at http://www.mirandabanda.org/files/Cog/VM/VM.r3056/.
CogVM binaries as per VMMaker.oscog-eem.832/r3056
Add the time zone to the version info on Mac OS X and Win32.
Fix bug in assigning parameter 55 (growth ratio at which to do a global GC).
Add vmParameter 52 to answer the capacity of the root table
(in Spur a.k.a. the rememberedSet).
In the wake of the inlining change below (see Slang:), split
and use the inline version in internalFindNewMethod.
Fix printStringOf: (used in e.g. frame print) to not print crs
that would cause previous info to be overwritten.
Fix bug with class table management and two-way become. Because two-way
may do an in-place swap obj1 & obj2 in
may not be forwarded after the inner become. Hence they should not be
if not forwarded. The bug manifested as Object's identityHash changing:
superclass is the first slot in a class. Following an unforwarded subclass
object yields Object. Setting the hash bits of the followed object smashes
Object's identityHash. Thanks to Stephane Rollandin for finding the bug.
More rationalization of the class table management post become. Now no post
become scan of the class table is necessary at all.
Add vm parameter 53 to answer the number of segments.
Move the rememberedSet into a pinned object in oldSpace. Allow it to grow
on demand, starting at 1k entries, doubling on each grow. Make sure to
if the attempt to grow the remembered set fails. Try to grow by another 1k
slots if doubling fails, then abort.
Revise markAndTrace: given that markAndShouldScan: is inlined within it (see
Slang changes below). Move the ephemeron processing into markAndShouldScan:
out of the now unused numStringSlotsOf:ephemeronInactiveIf: circumlocution.
Add activeAndDeferredScan: and numStrongSlotsOfInephemeral: in place of the
double negative inactiveOrFailedToDeferScan: and hence inline
numStrongSlotsOfInephemeral:. Increase the traceImmediatelySlotLimit.
changes plus the 2 repeats for compaction speed up global GC by at least x2.
Change the defaultEdenBytes to 4Mb.
Allow the number of compaction passes to vary, 2 on GC, 3 on GC for
Add support for inlining into the condition of ifTrue:/ifFalse:
when it is marked as inline. Transform
expr1 ifTrue:/ifFalse: [^expr2]
by inlining ^expr2 into expr1. Transform
expr ifTrue:/ifFalse: [statements]
by replacing ^boolean occurrences in expr with gotos.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev