Re: [squeak-dev] Cog VM problem?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Cog VM problem?

Eliot Miranda-2
 
Hi Raymond,

    yes, thanks.  We have a regression in the code generator due to recent changes to #== compilation.  We're working on it.  I hope to have a fix soon.  Apologies for the inconvenience.

For those of you curious why this only affects the V3 VM, not the Spur VM, the reason is that in Spur the Cogit passes up to 2 argument sends in registers but in V3 it passes only up to 1 arg sends in registers.  In 

(borderWidth = style width and: 
["Hah! Try understanding this..."

borderColor == style style or: 
["#raised/#inset etc"

#simple == style style and: [borderColor = style color]]]) 
ifFalse: 
[style := borderColor isColor 
ifTrue: [BorderStyle width: borderWidth color: borderColor]
ifFalse: [(BorderStyle perform: borderColor) width: borderWidth "argh."].
self setProperty: #borderStyle toValue: style].

#simple erroneously ends up getting spilled to the stack, so that when the send of width:color: to BorderStyle occurs the code generator emits code to access what it thinks is BorderWidth, but ends up accessing #simple instead.

As I say we're working on it and should have a fix soon.

On Thu, May 14, 2015 at 8:13 AM, Raymond Asselin <[hidden email]> wrote:
Cog.app-15.19.3336.tgz
gave me a Debugger window

 

with these artefacts
This is a MauiDomainMorph







--
best,
Eliot