<div dir="ltr">...at <a href="http://www.mirandabanda.org/files/Cog/VM/VM.r3205/">http://www.mirandabanda.org/files/Cog/VM/VM.r3205/</a>.<div><br></div><div>Happy New Year!<br><div><br></div><div><div>CogVM source as per VMMaker.oscog-eem.1008/r3205<br></div><div><br></div><div>Send cannotReturn for sideways return attemps when there&#39;s an unwind-protect.</div><div>Old code would erroneously answer unwind-protect even if home could&#39;nt be found.</div><div><br></div><div>e.g. This should raise cannot return:</div><div><br></div><div><span class="" style="white-space:pre">        </span>| b |</div><div><span class="" style="white-space:pre">        </span>b := [ ^ 42 ].</div><div><span class="" style="white-space:pre">        </span>[ [b value] ensure: [1] ] fork.</div><div><span class="" style="white-space:pre">        </span>Processor yield</div><div><br></div><div>just as this does:</div><div><br></div><div><span class="" style="white-space:pre">        </span>| b |</div><div><span class="" style="white-space:pre">        </span>b := [ ^ 42 ].</div><div><span class="" style="white-space:pre">        </span>[ b value ] fork.</div><div><span class="" style="white-space:pre">        </span>Processor yield</div><div><br></div><div>Speed up non-local return processing by using the fact that 98% of the time</div><div>returns are within the same page.  The search for the home context following</div><div>finding an unwind is unnecessary iff the home is married and on the same page.</div><div><br></div><div>Refactor commonReturn to eiminate CoInterpreter&#39;s version, moving the</div><div>divergence into maybeReturnToMachineCodeFrame.</div><div><br></div><div>Ensure search for home through the block&#39;s closure uses followField:ofObject:.</div><div><br></div><div>(related) Revisit the Sista bug fix for followed contexts during scavenging in</div><div>VMMaker.oscog-eem.913 of 24 October 2014.  Split isWidowedContext: into a more</div><div>careful version, isWidowedContextDuringGC: for use only during scavenging.</div><div><br></div><div>Win32:</div><div>Nuke obsolete RCS vrsion info</div><div><br></div><div>Spur:</div><div>Fix argument count slips in three primitives.</div><div>Check for sufficient memory in two-way become.</div><div><br></div><div>All:</div><div>Fix checking of boolean arg in primitiveArrayBecomeOneWayCopyHash.</div><div><br></div><div>Make primitiveSlotAt[Put] cope with non-pointer objects.</div><div><br></div><div>Change the pixel-touch-pixel prim to allow LPI arguments for the color values</div><div><br></div><div>Update the ScratchPlugin bilinear scaling prim to include the correct alpha channel value for non-transparent output pixels.</div><div><br></div><div>No longer build or upload the Newspeak V3 VMs, now superseded by Spur.</div><div><br></div><div>Use the gcc/clang built-ins for CAS and atomic increment if available.</div><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div></div>