[Vm-dev] Method executing but not sent to the receiver

Levente Uzonyi leves at elte.hu
Wed Jun 8 09:33:03 UTC 2011


On Tue, 7 Jun 2011, Eliot Miranda wrote:

> Hi Levente,  Hi David,
>
> On Tue, Jun 7, 2011 at 1:57 PM, Levente Uzonyi <leves at elte.hu> wrote:
>
>> 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, this is fixed in VMMaker.oscog-eem.75 &
> http://www.mirandabanda.org/files/Cog/VM/VM.r2394/.  David, the VMMaker

Great, thanks!


Levente

> package contains a putative fix for Interpreter.  Feel free to integrate it
> into the interpreter.
>
> best,
> Eliot
>
>
>>
>> Levente
>>
>>
>>> Cheers,
>>>  - Andreas
>>>
>>>
>>>
>


More information about the Vm-dev mailing list