[squeak-dev] CompiledMethod>>#valueWithReceiver:arguments: deprecated implementation?

patrick.rein at hpi.uni-potsdam.de patrick.rein at hpi.uni-potsdam.de
Tue Dec 11 15:19:54 UTC 2018


Hi Eliot,

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. 

Bests
Patrick

>Hi Patrick,
>
>> On Dec 11, 2018, at 6:39 AM, <patrick.rein at hpi.uni-potsdam.de> <patrick.rein at hpi.uni-potsdam.de> wrote:
>> 
>> Hi everyone,
>> 
>> a while back we discovered the following method with a comment:
>> 
>> CompiledMethod>>#valueWithReceiver: aReceiver arguments: anArray 
>>    "This should be changed after the release of Squeak 4.3 to
>>        ^self class receiver: aReceiver withArguments: anArray executeMethod: self"
>>    ^ aReceiver withArgs: anArray executeMethod: self
>>    
>> 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?
>
>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.  
>
>> 
>> Bests
>> Patrick
>
>Eliot
>_,,,^..^,,,_ (phone)
>


More information about the Squeak-dev mailing list