Hi Levente,<br><br><div class="gmail_quote">On Sat, Oct 23, 2010 at 8:44 PM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
On Sun, 10 Oct 2010, <a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Eliot Miranda uploaded a new version of Tests to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Tests-eem.96.mcz" target="_blank">http://source.squeak.org/trunk/Tests-eem.96.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Tests-eem.96<br>
Author: eem<br>
Time: 9 October 2010, 5:50:13.075 pm<br>
UUID: 8800404e-9468-4032-bee6-fe8400f7334a<br>
Ancestors: Tests-eem.95<br>
<br>
Reduce DecompilerTest failures to three legitimate failures.<br>
Do so by restricting tests to base classes in 4.1, by using deocmpileWithTempNames: to eliminate temp orderig issues, and by adding a few expected failures (but eliminating many more).<br>
</blockquote>
<br>
I still get 5 errors. Methods which have a variable declared in an optimized loop&#39;s block and that variable is also used by a real block have to be recompiled. I came up with the following script:<br>
<br>
#(<br>
        (Command veryDeepFixupWith:)<br>
        (Installer reportFor:page:on:)<br>
        (Player veryDeepFixupWith:)<br>
        (PNGReadWriter processInterlaced)<br>
        (SHMCClassDefinition withAllSuperclasses)<br>
        (SHMCClassDefinition allInstVarNames)) do: [ :each |<br>
                Smalltalk at: each first ifPresent: [ :class |<br>
                        (class includesSelector: each second) ifTrue: [<br>
                                class recompile: each second ] ] ].<br>
<br>
This is ok for the release and images with unloaded packages (core), but it&#39;s not sufficient for images which have external packages loaded. Is there a way to detect such methods without decompiling all methods in the image?<br>
</blockquote><div><br></div><div>Yes, but I don&#39;t think it&#39;s much easier that the decompile approach.  The fix would be to use the VariableScopeFinder visitor in the decompiler to localize temps to optimized blocks.  I guess doing this always, rather than only when there&#39;s a conflict would be ok (it would certainly be easier to code).  What do you think?</div>
<div><br></div><div>best</div><div>Eliot</div><div>  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
<br>
Levente<br>
<br>
<br>
snip<br>
<br>
</blockquote></div><br>