<br><br><div class="gmail_quote">On Sun, Mar 6, 2011 at 10:46 AM, Eliot Miranda <span dir="ltr">&lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Juan,<br><br><div class="gmail_quote"><div class="im">On Sun, Mar 6, 2011 at 9:26 AM, Juan Vuletich <span dir="ltr">&lt;<a href="mailto:juan@jvuletich.org" target="_blank">juan@jvuletich.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
Hi Folks,<br>
<br>
(Steven, I hope you don&#39;t mind me forwarding this to public lists)<br>
<br>
I got this bug report from Steven. It is a problem with Cog. This works ok with the interpreter, but fails with Cog. If I copy this method to Squeak trunk, the same happens. Please see that a message is sent to class Point, but it looks as if the receiver is an instance of Float. See that in the trace, it reads &quot;Float(Point class)&gt;&gt;r:degrees:&quot; which makes no sense at all.<br>


<br>
It looks like in this case, a pointer is pointing to the wrong object.<br></blockquote><div><br></div></div><div>Yes, this is a bug with the new StackToRegisterMappingCogit code generator.  The bug dies not show up with the SimpleStackBasedCogit.  The issue is bad register contents management on inline cache misses.  I&#39;ll keep you posted.</div>
</div></blockquote><div><br></div><div>Nothing to do with register contents.  It&#39;s a code generator bug which is miscompiling the reference to Point in the below:</div><div><br></div><div>initialize</div><div>&quot;initialize the state of the receiver&quot;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>| pt ext oldR points |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>super initialize.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>&quot;&quot;</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>pt _ 10 @ 10.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>ext _ pt r.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>oldR _ ext.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>points _ 5.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>vertices _ (0 to: 359 by: 360 // points // 2)</div><div><span class="Apple-tab-span" style="white-space:pre">                                </span>collect: [:angle | (Point r: (oldR _ oldR = ext</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                                                        </span>ifTrue: [ext * 5 // 12]</div><div><span class="Apple-tab-span" style="white-space:pre">                                                                        </span>ifFalse: [ext]) degrees: angle + pt degrees)</div>
<div><span class="Apple-tab-span" style="white-space:pre">                                                </span>+ (45 @ 45)].</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>self computeBounds </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="gmail_quote">
<div><br></div><div>best,</div><div>Eliot</div><div><div></div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Something very strange is that evaluating &#39;StarMorph new openInWorld&#39; seems to work ok, but creating a StarMorph from the &#39;new morph&#39; menu fails most times (but not always!).<br>
<br>
Any help from VM gurus is greately appreciated. Just copy the method to Squeak and try.<br>
<br>
Cheers,<br>
Juan Vuletich<br>
<br>
-------- Original Message --------<br>
As a gesture of appreciation for Cuis, here&#39;s a big report of a small bug.  :)<br>
<br>
===========================================<br>
<br>
Reproduce via &#39;Add a new morph&#39; -&gt; Widgets -&gt; StarMorph.<br>
<br>
===========================================<br>
<br>
StarMorph&gt;&gt;initialize from Squeak 4.2 (works)<br>
<br>
initialize<br>
&quot;initialize the state of the receiver&quot;<br>
super initialize.<br>
self<br>
makeVertices: self defaultSides<br>
starRatio: self defaultStarRatio<br>
withCenter: self defaultCenter<br>
withPoint: self defaultFirstVertex.<br>
self computeBounds<br>
<br>
StarMorph&gt;&gt;initialize from Cuis (MNU)<br>
<br>
initialize<br>
&quot;initialize the state of the receiver&quot;<br>
| pt ext oldR points |<br>
super initialize.<br>
&quot;&quot;<br>
pt := 10 @ 10.<br>
ext := pt r.<br>
oldR := ext.<br>
points := 5.<br>
vertices := (0 to: 359 by: 360 // points // 2)<br>
collect: [:angle | (Point r: (oldR := oldR = ext<br>
ifTrue: [ext * 5 // 12]<br>
ifFalse: [ext]) degrees: angle + pt degrees)<br>
+ (45 @ 45)].<br>
self computeBounds<br>
<br>
===========================================<br>
<br>
MessageNotUnderstood: Float&gt;&gt;new<br>
6 March 2011 6:43:13.424 am<br>
<br>
VM: Mac OS - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog.47] Croquet Cog 3.0.0<br>
Image: Cuis 3.1 [latest update: #850]<br>
<br>
Float(Object)&gt;&gt;doesNotUnderstand: #new<br>
Receiver: 14.14213562373095<br>
Arguments and temporary variables: aMessage: new<br>
exception: MessageNotUnderstood: Float&gt;&gt;new<br>
resumeValue: nil<br>
Receiver&#39;s instance variables: 14.14213562373095<br>
Float(Point class)&gt;&gt;r:degrees:<br>
Receiver: 14.14213562373095<br>
Arguments and temporary variables: rho: 14.14213562373095<br>
degrees: 81.0<br>
Receiver&#39;s instance variables: 14.14213562373095<br>
[] in StarMorph&gt;&gt;initialize<br>
Receiver: a StarMorph(2314)<br>
</blockquote></div></div></div><br>
</blockquote></div><br>