[prev in list] [next in list] [prev in thread] [next in thread] 

List:       squeak-vm-dev
Subject:    [Vm-dev] Nw Cog VMs available
From:       Eliot Miranda <eliot.miranda () gmail ! com>
Date:       2014-10-31 21:29:08
Message-ID: CAC20JE1rNqZxMYLbRAU_fAFphJBeMTGh-RpYXLHYeYut7hfiig () mail ! gmail ! com
[Download RAW message or body]

[Attachment #3 (multipart/alternative)]


...at http://www.mirandabanda.org/files/Cog/VM/VM.r3120/.  These contain a
few important bug fixes to Spur which will increase stability.

CogVM binaries as per VMMaker.oscog-eem.916

Spur:
Reimplement deriving the accessorDepth and retrying primitives on primitive
failure machinery.  Always take the primitive index from newMethod (setting
newMethod to a SmallInteger for primitiveDoPrimitiveWithArgs.

Have the Cogit always set primitiveFunctionPointer and newMethod for the
retry.

Add isNonInteger(Non)Immediate: and use it in several of
the integer conversion routines that were missing code
to exclude Character immediates, with fatal consequences.

With these changes the Pharo 4 test suite runs without
crashing on the latest Pharo Spur boot image.

Fix processWeakSurvivor: so that it answers whether a weak object refers
to a young object.  The old version only scanned weak fields, ignoring refs
to
young objs from strong fields.

Move check for valid classes from findClassOfMethod: forReceiver: into
findClassContainingMethod:startingAt:, hence making
findClassOfMethod:forReceiver: et al more robust.

Implement safe access to contexts and methods when creating image segments
(since internally married contexts and jitted methods have hidden state
encoded
in odd ways).

As a result:
Fix baaad bug in SpurMemoryManager>>lastPointerOf: for contexts, caused by
transcription from (New)ObjectMemory where the method works on a wing and a
prayer because BaseHeaderSize = BytesPerOop.  And I can't be arsed to fix
it.

Fix baaad bug in accessibleObjectAfter: and add an assert to
primitiveNextObject
to catch similar bugs.  Can now enumerate objects in new space, which will
sort-of work, but code should really use allObjects.  Will fix at the image
level as time allows.

Eliminate isInSurvivorSpace: in favour of the identical isInPastSpace:.

All:
Refactor decoding of context instruction pointers so
there is only one copy of the code.
-- 
best,
Eliot

[Attachment #6 (text/html)]

<div dir="ltr">...at  <a \
href="http://www.mirandabanda.org/files/Cog/VM/VM.r3120/">http://www.mirandabanda.org/files/Cog/VM/VM.r3120/</a>. \
These contain a few important bug fixes to Spur which will increase \
stability.<div><br clear="all"><div><div>CogVM binaries as per \
VMMaker.oscog-eem.916<br></div><div><br></div><div>Spur:</div><div>Reimplement \
deriving the accessorDepth and retrying primitives on primitive</div><div>failure \
machinery.   Always take the primitive index from newMethod \
(setting</div><div>newMethod to a SmallInteger for \
primitiveDoPrimitiveWithArgs.</div><div><br></div><div>Have the Cogit always set \
primitiveFunctionPointer and newMethod for the retry.</div><div><br></div><div>Add \
isNonInteger(Non)Immediate: and use it in several of</div><div>the integer conversion \
routines that were missing code</div><div>to exclude Character immediates, with fatal \
consequences.</div><div><br></div><div>With these changes the Pharo 4 test suite runs \
without</div><div>crashing on the latest Pharo Spur boot \
image.</div><div><br></div><div>Fix processWeakSurvivor: so that it answers whether a \
weak object refers</div><div>to a young object.   The old version only scanned weak \
fields, ignoring refs to</div><div>young objs from strong \
fields.</div><div><br></div><div>Move check for valid classes from findClassOfMethod: \
forReceiver: into</div><div>findClassContainingMethod:startingAt:, hence \
making</div><div>findClassOfMethod:forReceiver: et al more \
robust.</div><div><br></div><div>Implement safe access to contexts and methods when \
creating image segments</div><div>(since internally married contexts and jitted \
methods have hidden state encoded</div><div>in odd ways).</div><div><br></div><div>As \
a result:</div><div>Fix baaad bug in SpurMemoryManager&gt;&gt;lastPointerOf: for \
contexts, caused by</div><div>transcription from (New)ObjectMemory where the method \
works on a wing and a</div><div>prayer because BaseHeaderSize = BytesPerOop.   And I \
can&#39;t be arsed to fix it.</div><div><br></div><div>Fix baaad bug in \
accessibleObjectAfter: and add an assert to primitiveNextObject</div><div>to catch \
similar bugs.   Can now enumerate objects in new space, which will</div><div>sort-of \
work, but code should really use allObjects.   Will fix at the image</div><div>level \
as time allows.</div><div><br></div><div>Eliminate isInSurvivorSpace: in favour of \
the identical isInPastSpace:.</div><div><br></div><div>All:</div><div>Refactor \
decoding of context instruction pointers so</div><div>there is only one copy of the \
code.</div></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div> \
</div></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic