[squeak-dev] CompiledMethod>>#valueWithReceiver:arguments:
Eliot Miranda
eliot.miranda at gmail.com
Mon Mar 19 14:59:40 UTC 2018
Hi Tim,
> On Mar 18, 2018, at 11:33 PM, Tim Johnson <digit at sonic.net> wrote:
>
> Hi all,
>
> Browsing through a 5.1+ image today, I noticed that CompiledMethod>>#valueWithReceiver:arguments: reads as follows. Does this method indeed need to be changed?
>
> 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
>
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 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.
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.
>
> Thanks,
> Tim
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180319/82cc286a/attachment.html>
More information about the Squeak-dev
mailing list
|