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

Juan Vuletich JuanVuletich at zoho.com
Thu Apr 28 19:46:34 UTC 2016


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.
> 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 
> <mailto: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
>     <mailto: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 list
> Cuis-dev at cuis-smalltalk.org
> http://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/20160428/15d713f0/attachment.htm


More information about the Vm-dev mailing list