[Vm-dev] Method executing but not sent to the receiver
Levente Uzonyi
leves at elte.hu
Tue Jun 7 20:57:38 UTC 2011
On Wed, 20 Apr 2011, Andreas Raab wrote:
>
> On 4/20/2011 14:29, Mariano Martinez Peck wrote:
>> CompiledMethod >> valueWithReceiver: aReceiver arguments: anArray
>> "Execute compiledMethod against the receiver and args in argArray. The
>> receiver is the CompiledMethod"
>>
>> <primitive: 666>
>> self primitiveFailed
>>
>>
>> Where the primitive is send directly, and not a message to the receiver.
>>
>> Is something like this available or I would need to create a new primitive?
>
> Which by the way, is the primitive that should exist, and
> Object>>withArgs:executeMethod: should be nuked ASAP. There is no reason to
> pollute the Object namespace any more than absolutely necessary.
The solution already exists in Cog: primitive 188 can accept a third
argument - the receiver, but it doesn't work if the CompiledMethod is
quick. In this case the VM crashes. It does work with "normal" methods.
I prepared an image with a workspace in it demonstrating the bug:
http://leves.web.elte.hu/squeak/primitive188bug.zip
If primitive 188 works reliably, then this feature can be added to the
interpreter VM too.
Levente
>
> Cheers,
> - Andreas
>
>
More information about the Vm-dev
mailing list