<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Apr 7, 2015 at 7:39 AM, Levente Uzonyi <span dir="ltr">&lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">The decompiler is not perfect, and IIRC someone stated that it will never be. Most of these errors are &quot;handled&quot; by adding them as exceptions, so they are not tested. Some of these issues are probably fixable, but not many people are familiar with the decompiler.<br>
See DecompilerTests &gt;&gt; #decompilerFailures for the list of currently ignored methods.<span class=""><font color="#888888"><br>
<br>
Levente</font></span><div class=""><div class="h5"><br>
<br>
On Tue, 7 Apr 2015, Tobias Pape wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hi<br>
<br>
<br>
On 04.04.2015, at 16:59, Frank Shearar &lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
On 3 April 2015 at 16:27, Tobias Pape &lt;<a href="mailto:Das.Linux@gmx.de" target="_blank">Das.Linux@gmx.de</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hey<br>
<br>
I am watching the CI doing its work as changes and fixes<br>
chime in.<br>
 I noticed that there are still 13 test failing[1] and I&#39;m<br>
not sure how all of them should be fixed :)<br>
 Let&#39;s make it green!<br>
</blockquote>
<br>
I am _very very happy_ to see someone other than me harping on about<br>
tests! Please carry on!<br>
<br>
This one ought to be easy to fix: it&#39;s a small breakage in the<br>
modularity of the image; some methods need to be recategorised as not<br>
being System: <a href="http://build.squeak.org/job/SqueakTrunk/1207/testReport/Tests.Dependencies/PackageDependencyTest/testSystem/" target="_blank">http://build.squeak.org/job/<u></u>SqueakTrunk/1207/testReport/<u></u>Tests.Dependencies/<u></u>PackageDependencyTest/<u></u>testSystem/</a><br>
<br>
This one too: <a href="http://build.squeak.org/job/SqueakTrunk/1207/testReport/Tests.Dependencies/PackageDependencyTest/testTools/" target="_blank">http://build.squeak.org/job/<u></u>SqueakTrunk/1207/testReport/<u></u>Tests.Dependencies/<u></u>PackageDependencyTest/<u></u>testTools/</a><br>
(Tools shouldn&#39;t depend on _ToolBuilder-Morphic_, even though it would<br>
be OK to depend on ToolBuilder.)<br>
<br>
And I love that this one fails -<br>
<a href="http://build.squeak.org/job/SqueakTrunk/1207/testReport/Tests.Dependencies/PackageDependencyTest/testMultilingual/" target="_blank">http://build.squeak.org/job/<u></u>SqueakTrunk/1207/testReport/<u></u>Tests.Dependencies/<u></u>PackageDependencyTest/<u></u>testMultilingual/</a><br>
- Multilingual no longer depends on TrueType, and our system just got<br>
one dependency cleaner.<br>
</blockquote>
<br>
I did some things :)<br>
<br>
But I need help:<br>
There&#39;s a strange thing in the decompiler/compiler:<br>
<br>
<a href="http://build.squeak.org/job/SqueakTrunk/lastCompletedBuild/testReport/Tests.Compiler/DecompilerTests/testDecompilerInClassesBAtoBM/" target="_blank">http://build.squeak.org/job/<u></u>SqueakTrunk/<u></u>lastCompletedBuild/testReport/<u></u>Tests.Compiler/<u></u>DecompilerTests/<u></u>testDecompilerInClassesBAtoBM/</a><br>
<br>
Somewhere in Behavior&gt;&gt;#toolIconSelector:,<br>
a sequence of &#39;push nil. pop&#39; is generated that is decompiled as &#39;nil.&#39;.<br>
This does not match the source and I don&#39;t know whether it&#39;s a bug in<br>
the Compiler emitting this or the Decompiler not recognizing the emitted<br>
pattern.<br></blockquote></div></div></blockquote><div><br></div>Ah, I see it.<div class="gmail_extra"><br></div><div>Look the end of this block:</div><div><div><span class="" style="white-space:pre">        </span>self methodDictionary at: aSymbol ifPresent: [ :method |</div><div><span class="" style="white-space:pre">                ...</span></div><div><span class="" style="white-space:pre">                </span>method hasReportableSlip ifTrue: [^ #breakpoint]].</div></div><div><br></div><div>The block (correctly) answers nil if method hasReportableSlip is false, and the bytecode contains a pushConstant: nil; blockReturn sequence to implement this.  So the problem is with the decompiler not eliminating the explicit nil node in this case where it should be implicit.</div><div><br></div><div>HTH</div></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>