<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    It works perfectly with any Cuis image, including those that had the
    Character&gt;&gt;#= problem with previous Cog releases.<br>
    <br>
    Thanks Eliot,<br>
    Juan Vuletich<br>
    <br>
    On 5/2/2016 11:43 PM, Eliot Miranda wrote:
    <blockquote
cite="mid:CAC20JE1ncDfvxJYUVWsRi=JsXt-mHR4jabSizw6GqOuq+YCd5w@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.r3692">http://www.mirandabanda.org/files/Cog/VM/VM.r3692</a></div>
        <div><br>
        </div>
        <div>These include stack ARM VMs for Spur and V3.</div>
        <div><br>
        </div>
        <div>CogVM binaries as per VMMaker.oscog-eem.1855/r3692</div>
        <div><br>
        </div>
        <div>General:</div>
        <div>Fix a bad bug in primitiveVoidVMStateForMethod. One might
          think that the heap</div>
        <div>scan is unnecessary if the method does not have a cog
          method.  But it could be</div>
        <div>the case that the code zone has recently been reclaimed and
          so not having a cog</div>
        <div>method is no indication that it didn't have a cog method
          some time in the recent</div>
        <div>past, and that there are indeed still contexts with machine
          code pcs out there.</div>
        <div><br>
        </div>
        <div>Correct slip in primitiveMethodXray, the flags were not set
          in each caseOf:</div>
        <div>branch (thanks to -Wunused-value).</div>
        <div><br>
        </div>
        <div>Change overflow tests in precondition rather than
          postcondition for small</div>
        <div>integer multiplication.  Because integer overflow is
          undefined behaviour, and</div>
        <div>because we can't rely on undefined behaviour, the compiler
          has a license to</div>
        <div>eliminate the post-condition as dead code (at least since
          iso c89 acception).</div>
        <div>Post-condition currently works because we use -fwrapv
          compiler flag, but</div>
        <div>relying on specific compiler flags is bad practice in the
          long term. </div>
        <div><br>
        </div>
        <div>Fix regression in signed 32bit long access (introduced
          beginning of April).</div>
        <div>One symptom is:</div>
        <div>  (Alien newGC: 4)</div>
        <div><span class="" style="white-space: pre;"> </span>signedLongAt:
          1 put: -16r7287E552;</div>
        <div><span class="" style="white-space: pre;"> </span>signedLongAt:
          1</div>
        <div><br>
        </div>
        <div>Fix positive32BitIntegerFor: for Spur64 which worked only
          because the constant</div>
        <div>was generated ULL.</div>
        <div><br>
        </div>
        <div>Spur:</div>
        <div>Fix primitiveIsPinned.</div>
        <div><br>
        </div>
        <div>V3:</div>
        <div>Fix missing comparison operation in genPrimitiveIdentical
          on V3. This should</div>
        <div>fix Character = problem encounterd in Cuis.</div>
        <div><br>
        </div>
        <div>Debugging: Add printContextReferencesTo: &amp;
          printActivationsOf: and have them</div>
        <div>print the pcs of the contexts they find.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Cogit:</div>
        <div>Reorder annotation constants to simplify
          isPCMappedAnnotation:.</div>
        <div><br>
        </div>
        <div>Sista Cogit:</div>
        <div>Added a primitive to answer all the methods present in the
          machine code zone.</div>
        <div><br>
        </div>
        <div>allMachineCodeMethods</div>
        <div><span class="" style="white-space: pre;"> </span>&lt;primitive:
          'primitiveAllMethodsCompiledToMachineCode' module:''&gt;</div>
        <div><span class="" style="white-space: pre;"> </span>^#()</div>
        <div><br>
        </div>
        <div>Fix regression in VMMaker.oscog-eem.1823 when merging the
          two map enumerators</div>
        <div>into one that affects Sista.  The merged enumerator must
          extend</div>
        <div>IsSendAnnotations with the AnnotationExtension.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Plugins:</div>
        <div>Regenerate plugins using the recently revised type
          inferrence code.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Slang:</div>
        <div>Extend type inference capabilities from the AST.  Unify
          type inference used to</div>
        <div>#inferReturnTypeFromReturnsIn: with that based on AST.  Now
          that type inference</div>
        <div>is a bit more thorough, release type restrictions in
          #isFunctional in order to</div>
        <div>obtain much more aggressive inlining.  With those, a gain
          of 10% is possible</div>
        <div>on the LargeIntegersPlugin dominated bench:</div>
        <div><br>
        </div>
        <div>Use a type inference that better fits C rules (C99 standard
          section 6.3):</div>
        <div>- in (float op int), int is promoted to double not float</div>
        <div>- in (unsigned short op short) both operands are promoted
          to #int due to int</div>
        <div>  promotion rules.</div>
        <div><br>
        </div>
        <div>Use minimum generality for generated integer constants:</div>
        <div>- use int if variable fits in int</div>
        <div>- else unsigned int</div>
        <div>- else long long (long would be enough for 64bits versions,
          but long long works</div>
        <div>  for both 32 and 64)</div>
        <div>- else unsigned long long</div>
        <div>This is to avoid spurious unsigned promotion due to
          improved type inference.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Mac OS X: Fix argument processing, so that e.g. </div>
        <div><span class="" style="white-space: pre;"> </span>myvm
          -breaksel aSelector my.image</div>
        <div>works (but -headless still fails).</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>
  </body>
</html>