<div dir="ltr">Apologies, Ryan.  Fixed now.  That&#39;s an example of arg names hidden in a string providing the signature of a method that answers a function pointer.  Slang can&#39;t deal so it&#39;s hacked.</div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Dec 12, 2015 at 10:54 AM, Ryan Macnak <span dir="ltr">&lt;<a href="mailto:rmacnak@gmail.com" target="_blank">rmacnak@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"> <br><div dir="ltr">IA32 Cog has been <a href="https://travis-ci.org/newspeaklanguage/nsvm-linux-ci/jobs/96085275" target="_blank">broken</a> since this commit.<div><br></div><div>/home/travis/build/newspeaklanguage/nsvm-linux-ci/oscogvm/nsspursrc/vm/cogitIA32.c: In function ‘genEnilopmartForandandforCallcalled’:<br>/home/travis/build/newspeaklanguage/nsvm-linux-ci/oscogvm/nsspursrc/vm/cogitIA32.c:9844:6: error: ‘regArg3OrNone’ undeclared (first use in this function)</div><div><br><div class="gmail_extra"><div class="gmail_quote">On Thu, Dec 10, 2015 at 9:37 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:<br>
<a href="http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1574.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/VMMaker/VMMaker.oscog-eem.1574.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: VMMaker.oscog-eem.1574<br>
Author: eem<br>
Time: 10 December 2015, 9:36:18.933 am<br>
UUID: ce2daaa5-0130-4ed4-abdb-26b8b6c06c6e<br>
Ancestors: VMMaker.oscog-eem.1573<br>
<br>
Cogit:<br>
Introduce the &quot;abstract register&quot; NoReg and use it everywhere we used nil before to indicate no register.  Rename selectors and temporaries of the form *registerOrNil*&quot; to &quot;*registerOrNone*&quot;.  Rewrite all uses of reg ifNil: to be reg = NoReg ifTrue:.<br>
<br>
<br>
This is prior to the putsch to replace the use of -1 to -N for abstract registers, collapsing them down onto the same 0-N range used for concrete registers.<br>
<br>
Ryan, Tim, Clément et al, perhaps you could review this carefully and check your own tests to ensure I&#39;ve got this right.  At least the x64 and x86 Cogits look fine after this intermediate change.<br>
<br>
BTW, I used this to identify potential methods to change:<br>
<br>
self systemNavigation<br>
        browseMessageList: (self systemNavigation allMethodsSelect: [:m| (m methodClass category beginsWith:  #&#39;VMMaker-JIT&#39;) and: [(m literals includesAnyOf: #(isNil notNil ifNil: ifNotNil: ifNil:ifNotNil: ifNotNil:ifNil:)) and: [m methodNode tempNames anySatisfy: [:t| &#39;*reg*&#39; match: t]]]] localToPackage: #VMMaker)<br>
        name: &#39;Uses of nil&#39;<br>
        autoSelect: &#39;Nil&#39;<br>
<br>
and message names with the pattern &quot;*reg*ornil*&quot; to find selectors.</blockquote></div></div></div></div>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><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>