<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 24, 2015 at 4:41 PM, Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi All,</div><div><br></div><div>    after a period of instability due to internal changes needed for the Spur 64-bit V I hope that these latest VMs will be more stable.</div></div></blockquote><div><br></div><div>Alas, no.  Large file support is broken.  I&#39;m taking these down.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br><div>------------------------------------------------------------------------</div><div>CogVM source as per VMMaker.oscog-eem.1080/r3263</div><div><br></div><div>Mostly internal changes due to better inlining and type inferrence machinery</div><div>in Slang.</div><div><br></div><div>General:</div><div>Fix a type declaration error uncovered by the new inlining.</div><div>Simplify primitiveMakePoint. Include primitiveMethodXray</div><div>Include freeMethod: in Cogit&#39;s api for method xray.</div><div><br></div><div>Spur:</div><div>Fix a typing bug in initializeOldSpaceFirstFree:.</div><div><br></div><div>Newspeak:</div><div>Move the Newspeak plugins to nsspursrc/plugins.</div><div><br></div><div>Fix privacy violation checking for super sends.</div><div>Fix some type warnings in Spur stack VMs.</div><div><br></div><div>Slang:</div><div>More improvement to type inferrence/propagation.  Support ifTrue:ifFalse:.</div><div>Better separate the passes in inferTypesForImplicitlyTypedVariablesAndMethods.</div><div>Fix slip in nodeToCast:to:.  Provide types for atan, et al.  Avoid casting nil.</div><div><br></div><div>Don&#39;t inline complex expressions that are bound to variables used in asserts.</div><div><br></div><div>General:</div><div>Add an option to control FailUnbalancedPrimitives and</div><div>no longer burden the Stack VMs with the responsibility.</div><div><br></div><div>Fix typing multiple assignments to a variable</div><div>- promote the type to the largest integral type of all assignments</div><div><span style="white-space:pre-wrap">        </span>(primitiveDecompressFromByteArray)</div><div>- do /not/ promote a variable typed with integral type to a floating point type</div><div><span style="white-space:pre-wrap">        </span>(transformColor:)</div><div><br></div><div>On type compatibility of inlined expressions, insist on signed compatibility or</div><div>accept an untyped actual.</div><div><br></div><div>Improve the type inferrence machinery further to</div><div>support pointer subtraction.  Eliminate code duplication</div><div>(determineTypeFor:in: now uses returnTypeForSend:, etc).</div><div><br></div><div>Change the heuristic for inlining expressions to include a maximum usage count.</div><div><br></div><div>Slang:</div><div>Rescue translation of the non-64-bit Spur VMs by</div><div>a) doing a better job of super expansions, handling expansions</div><div><span style="white-space:pre-wrap">        </span>that are returning ifs as well as just returns correctly.</div><div>b) transforming variable := expr ifTrue: [s1] ifFalse: [s2] into</div><div>    expr ifTrue: [variable := s1] ifFalse: [variable := s2]</div><div>to allow inlining of s1 &amp; s2.</div><div><br></div><div>And take advantage of the better inlining in copyAndForward:</div><div><br></div><div>General:</div><div>Simplify primitiveDisplayString given isArray:.</div><div><br></div><div>Refactor positive32BitIntegerFor: and signed32BitIntegerFor: in the realization</div><div>that these reduce to essentially integerObjectOf: in 64-bit Spur.  The idea is</div><div>to inline if in 64-bit Spur but not if in the 32-bit VMs.  Add notOption:</div><div>processing to allow excluding noInlineSigned32BitIntegerFor: et al.  Add</div><div>hasSixtyFourBitImmediates to no longer assume that wordSize = 8 implies 64-bit</div><div>immediates.</div><div><br></div><div>Use positiveMachineIntegerFor: in place of</div><div>positive32BitIntegerFor: in some plugins.</div><div><br></div><div>Simplify two B3DAcceleratorPlugin prims given topRemappableOop and isArray:</div></div><span class="HOEnZb"><font color="#888888">-- <br><div>best,<div>Eliot</div></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>