[Pharo-dev] New CogVMs available

Eliot Miranda eliot.miranda at gmail.com
Mon Aug 4 22:49:18 EDT 2014


...at http://www.mirandabanda.org/files/Cog/VM/VM.r3058/.

CogVM binaries as per VMMaker.oscog-eem.842/r3058

Spur:
Provide unpinObject: for InterpreterProxy.

Fix initialization of the heap-resident remembered set added by
VMMaker.oscog-eem.827.  It must be created /after/ old space is initialized.

Fix two become bugs surfaced when adding/removing inst vars to/from
Association,
Binding et al.  First, the class table must be scanned to ensure there are
no
forwarders to classes (much cheaper than the full hierarchy walk to follow
method dictionaries etc that was done).  Second, machine code methods that
gain
a new reference through become must get added to the youngReferrers.  Add a
new
become effect flag, OldBecameNew that captures this and respond to it in
CoInterpreter>>postBecomeAction: by adding all methods to youngReferrers so
that on the next scavenge all will be made right.

Fix GC of machine code, which must follow forwarders when doing
markAndTraceLiteral: and again add to youngReferrers if following
gains a new ref.  Refactoring of markAndTraceLiteral: into
markAndTraceLiteral:in:at: et al required.

Fix assert in addFreeSubTree:.

General:
Support the alternate bytecode set header in all VMs to ease testing of
multiple bytecode sets.  This means methods with the sign bit set have
no primitive field and a larger num literals field, but no more.

Fix longPrintOop: (actually printOopShortInner:) for
global variable printing in face of new Environments.

Cogit:
Clean up adding to the youngReferrers by providing ensureInYoungReferrers:.
Since there always is room on youngReferrers, nuke roomOnYoungReferrersList,
canLinkToYoungClasses and caller code, simplifying ceSend:super:to:numArgs:
etc.

Fix assert in followForwardedLiteralsIn:

General:
Change the scanning for initial nils scheme in the
StackToRegisterMappingCogit
to answer the number of push nils in a bytecode, instead of whether the
bytecode is a push nil.  Refactor genReturnTopFromBlock into genBlockReturn.
These changes accomodate Sista.

Rationalize the length functions, deleting byteLengthOf:,
fetchLong32LengthOf:
& fetchWordLengthOf: and providing numBytesOf:, num16BitUnitsOf:,
num32BitUnitsOf:, num64BitUnitsOf: and numBytesOf:.

Provide fetch/storeShort16:ofObject:[withValue:] and
fetch/storeLong64:ofObject:[withValue:].

-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20140804/af3013ad/attachment-0002.html>


More information about the Pharo-dev mailing list