<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>thanks guille for all this cool energy!</p>
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">Le 27/5/16 à 15:17, Guille Polito a
      écrit :<br>
    </div>
    <blockquote cite="mid:574848EE.8030600@gmail.com" type="cite">
      <pre wrap=""> </pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Cool!<br>
      <br>
      I've just tested also your last version both on the simulator and
      in a compiled vm (with both edens of 4M and 2M) and we could not
      reproduce the crash anymore :).<br>
      <br>
      We pushed a bit more the case by creating 2M ephemerons and
      everything worked smoothly ;).<br>
      <br>
      I'll continue now working on the image side support of Ephemerons.<br>
      <br>
      Thanks!!<br>
      Guille<br>
      <br>
      <div class="moz-cite-prefix">-------- Original Message --------<br>
      </div>
      <blockquote
cite="mid:CAC20JE1RCu72sOrx+y6GHaU0H93L32qGP=4knDibR8jJV77X8w@mail.gmail.com"
        type="cite">
        <pre wrap=""> </pre>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <div dir="ltr">
          <div>... at <a moz-do-not-send="true"
              href="http://www.mirandabanda.org/files/Cog/VM/VM.r3732">http://www.mirandabanda.org/files/Cog/VM/VM.r3732</a></div>
          <div><br>
          </div>
          <div>CogVM binaries as per VMMaker.oscog-eem.1873/r3732<br>
          </div>
          <div><br>
          </div>
          <div>General:</div>
          <div>Make primitiveDoPrimitiveWithArgs usable as a mirror
            primitive, such that no</div>
          <div>message needs to be sent to the receiver to evaluate a
            primitive on it.  This</div>
          <div>would make possible Context&gt;&gt;receiver: obj
            tryPrimitive: idx withArgs: args.</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>Spur: Fix ephemerons (at least for Gule's test case).</div>
          <div><br>
          </div>
          <div>The mournQueue is of course a root for the scavenger and
            so must be visited at</div>
          <div>the start of a scavenge.  Fix bug in
            markAllUnscannedEphemerons, enumerating</div>
          <div>correctly.</div>
          <div><br>
          </div>
          <div>Both fireEphemeronsInRememberedSet and
            fireEphemeronsOnEphemeronList must check</div>
          <div>for an ephemeron being fireable.  An as-yet-firable
            ephemeron might get added to</div>
          <div>the ephemeron list and later its key may get tenured,
            rendering the ephemeron</div>
          <div>unfirable in that cycle.</div>
          <div><br>
          </div>
          <div>Fix marking of obj stack contents
            (markAndTraceObjStack:andContents:).  Again</div>
          <div>tenuring could cause contents to be forwarded and hence
            read barrier is needed.</div>
          <div><br>
          </div>
          <div>Fix two bugs in ephemerons (found by Gille Polito -
            thanks!).</div>
          <div><br>
          </div>
          <div>1. obj stack extension must happen with marking set to
            true if new pages aren't</div>
          <div>   to be GC'ed.  So move the assignments to marking out
            into markObjects: where</div>
          <div>   they can surround nilUnmarkedWeaklingSlots.</div>
          <div><br>
          </div>
          <div>2. fireAllUnscannedEphemerons needs to enumerate the
            unscannedEphemerons set</div>
          <div>   properly, an oop at a time.</div>
          <div><br>
          </div>
          <div>Fix asserts that check for ephemerons so that the change
            in an ephemeron's</div>
          <div>format once it gets added to the mournQueue doesn't break
            the asserts;</div>
          <div>isMaybeFiredEphemeron[Format]: answer true for ephemerons
            and ephemerons in</div>
          <div>the mournQueue.</div>
          <div><br>
          </div>
          <div>Fix the Spur implementation of becomeForward:copyHash:
            for becomming immediates</div>
          <div>with copyHash false.  Fix the scavenger's
            referenceCountRememberedReferents:</div>
          <div>for forwarding to immediates, and add a
            printRememberedSet convenience.</div>
          <div><br>
          </div>
          <div>Make pushLiteralVariable: store unfollowed literals back
            into the literal frame.</div>
          <div>Do so in a function off to the side, not inlined into the
            interpreter loop.</div>
          <div><br>
          </div>
          <div>With the above ephemeron changes Guille's test case
            passes:</div>
          <div><span class="" style="white-space:pre">        </span>| e |</div>
          <div><span class="" style="white-space:pre">        </span>Smalltalk
            supportsQueueingFinalization: true.</div>
          <div><span class="" style="white-space:pre">        </span>e := (1
            to: 200000) collect:</div>
          <div><span class="" style="white-space:pre">                </span>[:i|
            Ephemeron</div>
          <div><span class="" style="white-space:pre">                                </span>key:
            (ObjectFinalizer receiver: 'test', 'asd' selector: #logCr)</div>
          <div><span class="" style="white-space:pre">                                </span>value:
            Object new].</div>
          <div><span class="" style="white-space:pre">        </span>Smalltalk
            garbageCollect!</div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>Plugins:</div>
          <div>Simplify the arg validation in
            FloatArrayPrims&gt;&gt;prmNormalize &amp; primLength.</div>
          <div><br>
          </div>
          <div>Fix the configuration of the gdb-7.x support for for the
            GdbARMPlugin (COG=1).</div>
          <div>Put #if COG around a couple of changes to the gdb-7.10
            code.</div>
          <div>Allow assert to be used in the plugin on MacOS X
            (-undefined dynamic_lookup)</div>
          <div><br>
          </div>
          <div class="gmail_signature">
            <div dir="ltr">
              <div><span
                  style="font-size:small;border-collapse:separate">
                  <div>_,,,^..^,,,_<br>
                  </div>
                  <div>best, Eliot</div>
                </span></div>
            </div>
          </div>
        </div>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>