<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hi Tim,<br></div><div><br>On Mar 18, 2018, at 11:33 PM, Tim Johnson <<a href="mailto:digit@sonic.net">digit@sonic.net</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<p>Hi all,</p>
<p>Browsing through a 5.1+ image today, I noticed that CompiledMethod>>#valueWithReceiver:arguments: reads as follows.  Does this method indeed need to be changed?</p>
<p>valueWithReceiver: aReceiver arguments: anArray <br><br>    "This should be changed after the release of Squeak 4.3 to<br>        ^self class receiver: aReceiver withArguments: anArray executeMethod: self"<br>    ^ aReceiver withArgs: anArray executeMethod: self</p></div></blockquote><div><br></div>If the system is to be used with exotic proxies (and it is) then yes, ish :-).  I think the VM changes are in place.  But the <span style="background-color: rgba(255, 255, 255, 0);">receiver:withArguments:executeMethod: method could be on the instance side.  So please /don't/ put it on the class side.  The class send is pointless.</span><div><span style="background-color: rgba(255, 255, 255, 0);"><br></span></div><div><span style="background-color: rgba(255, 255, 255, 0);">  IMO it would be better to put the primitive in valueWithReceiver:arguments: itself, but presumably the authors thought it easier to avoid the stack shuffling required to remove the compiled method (something I find dubious; perform:withArguments: has to do more).  But that would require a new numbered primitive.</span><blockquote type="cite"><div>
<p>Thanks,<br>Tim</p>
<p><br></p>


</div></blockquote><blockquote type="cite"><div><span></span><br></div></blockquote></div></body></html>