Hi Levente,<br><br><div class="gmail_quote">On Sat, Oct 23, 2010 at 8:44 PM, Levente Uzonyi <span dir="ltr"><<a href="mailto:leves@elte.hu">leves@elte.hu</a>></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'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'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't think it'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'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>