<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Patrick,<div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 11, 2018 at 7:22 AM <<a href="mailto:patrick.rein@hpi.uni-potsdam.de">patrick.rein@hpi.uni-potsdam.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi Eliot,<br>
<br>
I do not know whether that is of any help but I also noticed that the three implementations (Object/ProtoObject and CompiledMethod class) all point to primitive 188. <br></blockquote><div><br></div><div>That's correct.  The primitive will serve for any of these signatures:</div><div><br></div><div>Smalltalk:</div><div>[Proto]Object>>withArgs: anArray executeMethod: aCompiledMethod</div><div>CompiledMethod class>>receiver: anObject withArguments: anArray executeMethod: aCompiledMethod</div><div><br></div><div>Newspeak:</div><div>VMMirror>>ifFail: aBlock object: anObject with: anArray executeMethod: aCompiledMethod<br></div><div><br></div><div>And the primitive did get updated for Spur so there's no problem with rewriting <span style="color:rgb(0,0,0)">CompiledMethod>>#valueWithRece</span><span style="color:rgb(0,0,0)">iver:arguments: to use CompiledMethod class>></span>receiver:withArguments:executeMethod:.  Do you want to do it or do you want me to do it?</div><div><span style="color:rgb(0,0,0)"><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<br>
Bests<br>
Patrick<br>
<br>
>Hi Patrick,<br>
><br>
>> On Dec 11, 2018, at 6:39 AM, <<a href="mailto:patrick.rein@hpi.uni-potsdam.de" target="_blank">patrick.rein@hpi.uni-potsdam.de</a>> <<a href="mailto:patrick.rein@hpi.uni-potsdam.de" target="_blank">patrick.rein@hpi.uni-potsdam.de</a>> wrote:<br>
>> <br>
>> Hi everyone,<br>
>> <br>
>> a while back we discovered the following method with a comment:<br>
>> <br>
>> CompiledMethod>>#valueWithReceiver: aReceiver arguments: anArray <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<br>
>>    <br>
>> Is the comment still valid? Should this be changed? I changed it in my image and have not seen any problems. Also the Kernel-Methods tests are running fine. Does anyone know more about the comment?<br>
><br>
>I believe it’s my comment.  The point is that a proxy object won’t inherit [Proto]Object>>#withArgs:executeMethod: and so sending #withArgs:executeMethod: to it won’t do what’s expected at all.  The solution is to use a mirror primitive.  So yes, we should indeed make this change.  Someone (me?) needs to check that the VM support is there.  <br>
><br>
>> <br>
>> Bests<br>
>> Patrick<br>
><br>
>Eliot<br>
>_,,,^..^,,,_ (phone)<br>
><br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" 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></div></div></div></div></div></div></div></div>