<br><br><div class="gmail_quote">On Tue, Sep 27, 2011 at 12:05 AM, Stefan Marr <span dir="ltr">&lt;<a href="mailto:squeak@stefan-marr.de">squeak@stefan-marr.de</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:<br>
<div class="im"><br>
On 27 Sep 2011, at 08:45, Nicolas Cellier wrote:<br>
<br>
&gt; Again some nasty kind of undefined shifts on signed/unsigned ints?<br>
&gt; Or a macro expansion leading to subtle subexpression ordering (++i/++i) ?<br>
&gt; Or one of the many dark zones here:<br>
&gt; <a href="http://www.vmunix.com/~gabor/c/draft.html#601" target="_blank">http://www.vmunix.com/~gabor/c/draft.html#601</a><br>
&gt;<br>
&gt; Being able to enumerate such a long list without any omission is<br>
&gt; already something!<br>
&gt; What a beautiful language !<br>
<br>
</div>Kind of similar to the problems previous mentioned in this thread, we got a optimization bug in the RoarVM codebase too.<br>
<br>
It is biting me with an infinite loop when I use a GCC &gt;4.2 or Intel compiler and enable optimization &gt;O1 on two specific files.<br>
<br>
Still, I think the bug is somewhere completely else.<br>
<br>
I tried to go through the files and disable optimization for particular functions, without useful result... It is jumping. Perhaps there are multiple places where we use unspecified code.<br>
<br>
Are there any tools that could be useful to find such things?<br></blockquote><div><br></div><div>The only way I know to do this quickly is to get a reproducible case that runs to failure from start-up without user intervention and run the two VMs side-by-side on that case.  If the bug shows itself when tracing is turned on then it can be relatively easy to find the point at which the two diverge and backtrack from there.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">I tried the Clang static analyzer, but without much success.<br>
It also gives a lot of warnings about potentially uninitialized variables in the primitives. It does not like the primitiveFail/successFlag checks at all.<br></blockquote><div><br></div><div>:)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<br>
Best regards<br>
Stefan<br>
<font color="#888888"><br>
<br>
--<br>
Stefan Marr<br>
Software Languages Lab<br>
Vrije Universiteit Brussel<br>
Pleinlaan 2 / B-1050 Brussels / Belgium<br>
<a href="http://soft.vub.ac.be/~smarr" target="_blank">http://soft.vub.ac.be/~smarr</a><br>
Phone: <a href="tel:%2B32%202%20629%202974" value="+3226292974">+32 2 629 2974</a><br>
Fax:   <a href="tel:%2B32%202%20629%203525" value="+3226293525">+32 2 629 3525</a><br>
<br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div><br>