<!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>>#= 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: &
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><primitive:
'primitiveAllMethodsCompiledToMachineCode' module:''></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>