Fwd: [Cuis-dev] [Vm-dev] Cuis now runs with latest Cog, but I don't understand the problem we had

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Fri Apr 29 21:03:11 UTC 2016


---------- Forwarded message ----------
From: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
Date: 2016-04-29 23:01 GMT+02:00
Subject: Re: [Cuis-dev] [Vm-dev] Cuis now runs with latest Cog, but I don't
understand the problem we had
To: Juan Vuletich <JuanVuletich at zoho.com>




2016-04-28 22:24 GMT+02:00 Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com>:

> I can reproduce the problem with same snippet on a Squeak 4.6 image with
> squeak.cog.v3.
> The snippet works well with squeak.stack.v3.
>
> 2016-04-28 21:46 GMT+02:00 Juan Vuletich <JuanVuletich at zoho.com>:
>
>> On 4/28/2016 4:39 PM, Nicolas Cellier via Cuis-dev wrote:
>>
>> Moreover, as long as you write primitive: 110 in cog, you don't invoke
>> primitive 110.
>> You rather invoke genPrimitiveIdentical.
>> Please try the snippet on a StackVM.
>>
>>
>> Sure. Can you provide a link to such VM? It should be based on
>> VMMaker.oscog-eem.1370/r3386 or later, as the problem doesn't happen with
>> any Cog older than that.
>>
>> Thanks,
>> Juan Vuletich
>>
>> genPrimitiveIdentical has been slightly refactored, but I see no obvious
>> problem by just reading code.
>>
>>
Bah, case of mud in the eyes?
I now clearly see the problem: the compare instruction has disappeared from
latest version of genPrimitiveIdenticalOrNotIf:
If you can compile a VM, the problem should be fixed, else just wait for
next Eliot delivery.


> Moreover, when you use Object = you'll also call same methods in the end...
>> This would deserve experimenting VMSimulator... (I don't have the Bochs
>> plugin working now)
>>
>> 2016-04-28 21:21 GMT+02:00 Nicolas Cellier <
>> nicolas.cellier.aka.nice at gmail.com>:
>>
>>> Hi Juan, then how do you explain:
>>>
>>> "Just to clarify: the issue was experienced only when running on Cog...
>>> current versions of the Stack VM performed as expected."
>>>
>>>
>>> 2016-04-28 21:10 GMT+02:00 Juan Vuletich <JuanVuletich at zoho.com>:
>>>
>>>>
>>>> On 4/28/2016 2:13 PM, Phil (list) wrote:
>>>>
>>>>>
>>>>> On Thu, 2016-04-28 at 12:58 -0400, Phil (list) wrote:
>>>>>
>>>>>> On Thu, 2016-04-28 at 16:43 +0200, Clément Bera wrote:
>>>>>>
>>>>>>>   Have you tried on latest VM ? I remembered fixing a bug on #==
>>>>>>> primitive like a month ago. The problem was when performing #==
>>>>>>> primitive with the argument being a forwarder to an immediate.
>>>>>>>
>>>>>>> The problem still existed as of Cog #3686 (Juan found the fix
>>>>>> yesterday.)  On my system, Cuis last worked perfectly with 3370,
>>>>>> mostly
>>>>>> worked with 3390, somewhat worked with 3427 and did not work after
>>>>>> that
>>>>>> until we found the Character>>#= bug/fix.
>>>>>>
>>>>> Just to clarify: the issue was experienced only when running on Cog...
>>>>> current versions of the Stack VM performed as expected.
>>>>>
>>>>
>>>> Fortunately I work with Gera Richarte @ Satellogic, and it didn't take
>>>> long for him to suggest an explanation: Maybe prim 110 is broken in recent
>>>> Cog VMs, but nobody notices it because the only sender is #== that is
>>>> already optimized by the jitter, so prim 110 is never really called. And I
>>>> realized we can test that theory. First, we add this method to Character:
>>>>
>>>> === aCharacter
>>>> <primitive: 110>
>>>>     self halt
>>>>
>>>> Then the following snippet (in latest Cuis, #2744):
>>>>
>>>>     0 to: 255 do: [ :i1 | 0 to: 255 do: [ :i2 | i1 = i2 ifFalse:
>>>> [(Character value: i1) === (Character value: i2) ifTrue: [{i1.i2} print ]]]]
>>>>
>>>> prints nothing if run with Cog 3370, but prints a lot of pairs in more
>>>> recent Cog. So I think Gera is right.
>>>>
>>>> Thanks,
>>>> Juan Vuletich
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Cuis-dev mailing listCuis-dev at cuis-smalltalk.orghttp://cuis-smalltalk.org/mailman/listinfo/cuis-dev_cuis-smalltalk.org
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20160429/19b8fcc6/attachment-0001.htm


More information about the Vm-dev mailing list