New CogVMs available

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

New CogVMs available

Eliot Miranda-2
... 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
lookupInMethodCacheSel:classTag: into inlineLookupInMethodCacheSel:classTag:,
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.

Spur:
Fix bug with class table management and two-way become.  Because two-way become
may do an in-place swap obj1 & obj2 in SpurMemoryManager>>doBecome:and:copyHash:
may not be forwarded after the inner become.  Hence they should not be followed
if not forwarded.  The bug manifested as Object's identityHash changing:
superclass is the first slot in a class. Following an unforwarded subclass of
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 abort
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.  These
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 snapshot.

Slang:
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.
--
Aloha,
Eliot


Reply | Threaded
Open this post in threaded view
|

Re: New CogVMs available

Frank Shearar-3
On 24 July 2014 19:13, Eliot Miranda <[hidden email]> wrote:
> ... at http://www.mirandabanda.org/files/Cog/VM/VM.r3056/.

Duly updated on CI.

frank