Hi Igor,<br><br><div class="gmail_quote">On Thu, Apr 5, 2012 at 9:14 AM, Igor Stasenko <span dir="ltr">&lt;<a href="mailto:siguctua@gmail.com">siguctua@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">
<br>
Hi Eliot &amp; all,<br>
<br>
i &amp; Esteban were investigating what is wrong with crash on windoze<br>
(see <a href="http://code.google.com/p/pharo/issues/detail?id=5568" target="_blank">http://code.google.com/p/pharo/issues/detail?id=5568</a>)<br>
<br>
what we found:<br>
<br>
- a stack vm runs given snippet well.<br>
- a cog vm crashing horribly or throws an exception  (see below)<br>
<br>
- if i set -O1 optimization for gcc3x-cointerp.c then everything is _FINE_<br>
but if you build with -O2, there is interesting issue with this.<br>
<br>
If you start a fresh 1.4 image and run a following snippet in workspace:<br>
<br>
| oldm window aForm startPoint endPoint |<br>
oldm := DisplayObject&gt;&gt;#slideFrom:to:nSteps:delay: .<br>
&quot;self assert: (DisplayObject&gt;&gt;#slideFrom:to:nSteps:delay:  ~~oldm).&quot;<br>
window := SystemWindow allInstances first.<br>
aForm := window imageForm offset: 0@0.<br>
startPoint := (-194@61).<br>
endPoint := (276.0@134.0).<br>
aForm<br>
        slideFrom: startPoint<br>
        to: endPoint<br>
        nSteps: 12<br>
        delay: 15.<br>
<br>
At first run it shows a DNU: Smallinteger&gt;&gt;DNU #extent: (or just crashes).<br>
<br>
It looks like something happens with stack, since receiver should be a Point,<br>
and if you open the debugger and evaluate the corresponding line:<br>
newLoc := locationBlock value<br>
it will print<br>
(-76@79)<br>
as expected<br>
<br>
next, if you close the debugger and run the very same doit again, bug<br>
disappears and no longer reproducible, and everything works as it<br>
should be.<br>
So, i presume it is related to place where a compiled method is jit-ed<br>
for a first time, and invoked .. but if it is already jited ,<br>
everything runs smoothly.<br>
<br>
The compiler version i using on my machine: gcc.exe (GCC) 4.6.1<br>
The compiler used on jenkins slave machine: GCC 4.5.2<br>
<br>
And, of course, concerning why this doesn&#39;t crashing on Eliot&#39;s VMs :<br>
well, since it is related to compiler optimization(s),<br>
and VM code is a lil-bit different in a branch we using on Jenkins, it<br>
could happen that this is not an issue in one case, while causing<br>
problems in another one.<br>
Another option (not necessary impossible), that we missed some<br>
critical fix when merging code from Eliot&#39;s branch :)<br></blockquote><div><br></div><div>One thing to do would be to compile my source tree with your compiler.  I compile my windows VM using gcc 3.4.x, so that mine doesn&#39;t crash could be to do with that.  My source tree is <a href="http://www.squeakvm.org/svn/squeak/branches/Cog">http://www.squeakvm.org/svn/squeak/branches/Cog</a>.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
So, for the time till the cause of it can be found i will change the<br>
configuration to build windows Cog VMs gcc3x-cointerp.c with -O1 flag.<br>
<font color="#888888"><br>
--<br>
Best regards,<br>
Igor Stasenko.<br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div><br>