<div dir="ltr"><div>I can reproduce the problem with same snippet on a Squeak 4.6 image with squeak.cog.v3.<br></div>The snippet works well with squeak.stack.v3.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-28 21:46 GMT+02:00 Juan Vuletich <span dir="ltr"><<a href="mailto:JuanVuletich@zoho.com" target="_blank">JuanVuletich@zoho.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>
<div bgcolor="#ffffff" text="#000000"><span class="">
On 4/28/2016 4:39 PM, Nicolas Cellier via Cuis-dev wrote:
<blockquote type="cite">
<div dir="ltr">
<div>
<div>Moreover, as long as you write primitive: 110 in cog, you
don't invoke primitive 110.<br>
</div>
You rather invoke genPrimitiveIdentical.<br>
</div>
<div>Please try the snippet on a StackVM.<br>
</div>
<div><br>
</div>
</div>
</blockquote>
<br></span>
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.<br>
<br>
Thanks,<br>
Juan Vuletich<br>
<br>
<blockquote type="cite"><div><div class="h5">
<div dir="ltr">
<div>genPrimitiveIdentical has been slightly refactored, but I
see no obvious problem by just reading code.<br>
</div>
<div>Moreover, when you use Object = you'll also call same
methods in the end...<br>
</div>
<div>This would deserve experimenting VMSimulator... (I don't
have the Bochs plugin working now)<br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-04-28 21:21 GMT+02:00 Nicolas
Cellier <span dir="ltr"><<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi Juan, then how do you explain:<span><br>
<br>
"Just to clarify: the issue was experienced only when
running on Cog...<br>
current versions of the Stack VM performed as expected."<br>
<br>
</span></div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-04-28 21:10 GMT+02:00
Juan Vuletich <span dir="ltr"><<a href="mailto:JuanVuletich@zoho.com" target="_blank">JuanVuletich@zoho.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
On 4/28/2016 2:13 PM, Phil (list) wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
On Thu, 2016-04-28 at 12:58 -0400, Phil (list)
wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
On Thu, 2016-04-28 at 16:43 +0200, Clément
Bera wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Have you tried on latest VM ? I remembered
fixing a bug on #==<br>
primitive like a month ago. The problem was
when performing #==<br>
primitive with the argument being a
forwarder to an immediate.<br>
<br>
</blockquote>
The problem still existed as of Cog #3686
(Juan found the fix<br>
yesterday.) On my system, Cuis last worked
perfectly with 3370,<br>
mostly<br>
worked with 3390, somewhat worked with 3427
and did not work after<br>
that<br>
until we found the Character>>#=
bug/fix.<br>
</blockquote>
Just to clarify: the issue was experienced only
when running on Cog...<br>
current versions of the Stack VM performed as
expected.<br>
</blockquote>
<br>
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:<br>
<br>
=== aCharacter<br>
<primitive: 110><br>
self halt<br>
<br>
Then the following snippet (in latest Cuis,
#2744):<br>
<br>
0 to: 255 do: [ :i1 | 0 to: 255 do: [ :i2 | i1
= i2 ifFalse: [(Character value: i1) ===
(Character value: i2) ifTrue: [{i1.i2} print ]]]]<br>
<br>
prints nothing if run with Cog 3370, but prints a
lot of pairs in more recent Cog. So I think Gera
is right.<br>
<br>
Thanks,<br>
Juan Vuletich<br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div></div><pre><fieldset></fieldset>
_______________________________________________
Cuis-dev mailing list
<a href="mailto:Cuis-dev@cuis-smalltalk.org" target="_blank">Cuis-dev@cuis-smalltalk.org</a>
<a href="http://cuis-smalltalk.org/mailman/listinfo/cuis-dev_cuis-smalltalk.org" target="_blank">http://cuis-smalltalk.org/mailman/listinfo/cuis-dev_cuis-smalltalk.org</a>
</pre>
</blockquote>
<br>
</div>
</blockquote></div><br></div>