Hi Juan,<br><br><div class="gmail_quote">On Sun, Mar 6, 2011 at 9:26 AM, Juan Vuletich <span dir="ltr">&lt;<a href="mailto:juan@jvuletich.org">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>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><br></div><div>best,</div><div>Eliot</div><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><br>