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

Levente Uzonyi leves at elte.hu
Fri Jun 10 13:23:14 UTC 2011


On Thu, 9 Jun 2011, David T. Lewis wrote:

>
> On Tue, Jun 07, 2011 at 05:49:45PM -0700, 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
>> package contains a putative fix for Interpreter.  Feel free to integrate it
>> into the interpreter.
>
> Thanks Eliot,
>
> The fix from VMMaker.oscog-eem.75 is included in VMMaker-dtl.240 (Minor note,
> oscog needs an implemention of #stackValue:put: for Interpreter also).
>
> Levente, your test image (primitive188bug.zip) works now on the interpreter VM
> (workspace example evaluates without VM crash).

Great, thanks!


Levente

>
> Dave
>
>


More information about the Vm-dev mailing list