<div dir="ltr">Apologies, Ryan. Fixed now. That's an example of arg names hidden in a string providing the signature of a method that answers a function pointer. Slang can't deal so it'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"><<a href="mailto:rmacnak@gmail.com" target="_blank">rmacnak@gmail.com</a>></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"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></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 "abstract register" NoReg and use it everywhere we used nil before to indicate no register. Rename selectors and temporaries of the form *registerOrNil*" to "*registerOrNone*". 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'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: #'VMMaker-JIT') and: [(m literals includesAnyOf: #(isNil notNil ifNil: ifNotNil: ifNil:ifNotNil: ifNotNil:ifNil:)) and: [m methodNode tempNames anySatisfy: [:t| '*reg*' match: t]]]] localToPackage: #VMMaker)<br>
name: 'Uses of nil'<br>
autoSelect: 'Nil'<br>
<br>
and message names with the pattern "*reg*ornil*" 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>