<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Apr 8, 2015 at 11:54 AM, Tobias Pape <span dir="ltr">&lt;<a href="mailto:Das.Linux@gmx.de" target="_blank">Das.Linux@gmx.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><br>
On 08.04.2015, at 20:29, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt; wrote:<br>
<br>
&gt; On Wed, Apr 8, 2015 at 11:11 AM, Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt; &gt; On Tue, Apr 7, 2015 at 7:39 AM, Levente Uzonyi &lt;<a href="mailto:leves@elte.hu" target="_blank">leves@elte.hu</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt;&gt; The decompiler is not perfect, and IIRC someone stated that it will never<br>
&gt; &gt;&gt; be. Most of these errors are &quot;handled&quot; by adding them as exceptions, so<br>
&gt; &gt;&gt; they are not tested. Some of these issues are probably fixable, but not<br>
&gt; &gt;&gt; many people are familiar with the decompiler.<br>
&gt; &gt;&gt; See DecompilerTests &gt;&gt; #decompilerFailures for the list of currently<br>
&gt; &gt;&gt; ignored methods.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Levente<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On Tue, 7 Apr 2015, Tobias Pape wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;  Hi<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; 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>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;  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>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; Hey<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; I am watching the CI doing its work as changes and fixes<br>
&gt; &gt;&gt;&gt;&gt;&gt; chime in.<br>
&gt; &gt;&gt;&gt;&gt;&gt;  I noticed that there are still 13 test failing[1] and I&#39;m<br>
&gt; &gt;&gt;&gt;&gt;&gt; not sure how all of them should be fixed :)<br>
&gt; &gt;&gt;&gt;&gt;&gt;  Let&#39;s make it green!<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; I am _very very happy_ to see someone other than me harping on about<br>
&gt; &gt;&gt;&gt;&gt; tests! Please carry on!<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; This one ought to be easy to fix: it&#39;s a small breakage in the<br>
&gt; &gt;&gt;&gt;&gt; modularity of the image; some methods need to be recategorised as not<br>
&gt; &gt;&gt;&gt;&gt; being System: <a href="http://build.squeak.org/job/SqueakTrunk/1207/testReport/" target="_blank">http://build.squeak.org/job/SqueakTrunk/1207/testReport/</a><br>
&gt; &gt;&gt;&gt;&gt; Tests.Dependencies/PackageDependencyTest/testSystem/<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; This one too: <a href="http://build.squeak.org/job/SqueakTrunk/1207/testReport/" target="_blank">http://build.squeak.org/job/SqueakTrunk/1207/testReport/</a><br>
&gt; &gt;&gt;&gt;&gt; Tests.Dependencies/PackageDependencyTest/testTools/<br>
&gt; &gt;&gt;&gt;&gt; (Tools shouldn&#39;t depend on _ToolBuilder-Morphic_, even though it would<br>
&gt; &gt;&gt;&gt;&gt; be OK to depend on ToolBuilder.)<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; And I love that this one fails -<br>
&gt; &gt;&gt;&gt;&gt; <a href="http://build.squeak.org/job/SqueakTrunk/1207/testReport/" target="_blank">http://build.squeak.org/job/SqueakTrunk/1207/testReport/</a><br>
&gt; &gt;&gt;&gt;&gt; Tests.Dependencies/PackageDependencyTest/testMultilingual/<br>
&gt; &gt;&gt;&gt;&gt; - Multilingual no longer depends on TrueType, and our system just got<br>
&gt; &gt;&gt;&gt;&gt; one dependency cleaner.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; I did some things :)<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; But I need help:<br>
&gt; &gt;&gt;&gt; There&#39;s a strange thing in the decompiler/compiler:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; <a href="http://build.squeak.org/job/SqueakTrunk/lastCompletedBuild/testReport/" target="_blank">http://build.squeak.org/job/SqueakTrunk/lastCompletedBuild/testReport/</a><br>
&gt; &gt;&gt;&gt; Tests.Compiler/DecompilerTests/testDecompilerInClassesBAtoBM/<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Somewhere in Behavior&gt;&gt;#toolIconSelector:,<br>
&gt; &gt;&gt;&gt; a sequence of &#39;push nil. pop&#39; is generated that is decompiled as &#39;nil.&#39;.<br>
&gt; &gt;&gt;&gt; This does not match the source and I don&#39;t know whether it&#39;s a bug in<br>
&gt; &gt;&gt;&gt; the Compiler emitting this or the Decompiler not recognizing the emitted<br>
&gt; &gt;&gt;&gt; pattern.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt; Ah, I see it.<br>
&gt; &gt;<br>
&gt; &gt; Look the end of this block:<br>
&gt; &gt; self methodDictionary at: aSymbol ifPresent: [ :method |<br>
&gt; &gt; ...<br>
&gt; &gt; method hasReportableSlip ifTrue: [^ #breakpoint]].<br>
&gt; &gt;<br>
&gt; &gt; The block (correctly) answers nil if method hasReportableSlip is false,<br>
&gt; &gt; and the bytecode contains a pushConstant: nil; blockReturn sequence to<br>
&gt; &gt; implement this.  So the problem is with the decompiler not eliminating the<br>
&gt; &gt; explicit nil node in this case where it should be implicit.<br>
&gt; &gt;<br>
&gt;<br>
&gt; Oops.  The pushConstant: nil; blockReturn sequence is at bytecpde pc 202<br>
&gt; right? That&#39;s coming from<br>
&gt;<br>
&gt; (self isSelectorOverride: aSymbol)<br>
&gt; ifTrue: [<br>
&gt; (self isSelectorOverridden: aSymbol)<br>
&gt; ifTrue: [ ^ #arrowUpAndDown ]<br>
&gt; ifFalse: [ ^ #arrowUp ] ]<br>
&gt; ifFalse: [<br>
&gt; (self isSelectorOverridden: aSymbol)<br>
&gt; ifTrue: [^ #arrowDown ]].<br>
&gt;<br>
<br>
</div></div>Yes, this is the place :)<br>
<span><br>
&gt; I&#39;ll try and squash this in a principled way soon.  I&#39;ve squashed the<br>
&gt; former by using the attached:<br>
&gt;<br>
<br>
</span>Thanks for taking care.<br>
<div><div>Best<br>
        -Tobias<br></div></div></blockquote><div><br></div><div>Looks like a compiler bug to me. The push nil at 202 has no need to be generated.   :-/</div><div><br></div></div>-- <br><div>best,<div>Eliot</div></div>
</div></div>