<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
On 5/5/2025 1:04 PM, Nicolás Papagna Maldonado via Cuis-dev wrote:
<blockquote
cite="mid:CADGn7BP6OuEp4-tcT+Zyg6zr8+GoVPY5+b7-hcCue_nVHnYUtg@mail.gmail.com"
type="cite">
<div dir="ltr">Hi Juan, all!
<div><br>
</div>
<div>Thanks for the clarification.</div>
<div><br>
</div>
<div>CodeCoverage de-optimizes methods to do its thing, so <span
style="font-family: monospace;">CodeCoverageTest
temporaryVariable</span> is actually a valid use-case (it's
used to check whether the temporary variable declaration is
marked as 'covered' when the variable is read.</div>
<div><br>
</div>
<div>Is there any way I can exclude such tests from <span
style="font-family: monospace;">DecompilerTests?</span></div>
I'm building a custom image where I need to check that I didn't
break any tests in the base image and that failing tests is
breaking my CI builds, preventing the build from suceeding.
<div><br>
</div>
<div>Cheers!</div>
<div>Nico PM</div>
</div>
</blockquote>
<br>
Yes, you can add it to #expectedFailures . BaseImageTests has some
examples of this.<br>
<br>
Cheers,<br>
<br>
<blockquote
cite="mid:CADGn7BP6OuEp4-tcT+Zyg6zr8+GoVPY5+b7-hcCue_nVHnYUtg@mail.gmail.com"
type="cite"><br>
<div class="gmail_quote gmail_quote_container">
<div dir="ltr" class="gmail_attr">On Mon, May 5, 2025 at
12:54 PM Juan Vuletich <<a moz-do-not-send="true"
href="mailto:juan@cuis.st">juan@cuis.st</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin: 0px 0px 0px
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div bgcolor="#ffffff"> Hi Nico.<br>
<br>
I don't think this is a bug. Decompiler creates Smalltalk
code from actual bytecode. Dead code had been removed when
generating the bytecode. Looks fine to me.<br>
<br>
Does it make sense to add some use of the 'a' variable, so
it is kept during compilation? I mean, it is difficult to
imagine that CodeCoverageTest can do something interesting
with a method that had all its code optimized out...<br>
<br>
Cheers,<br>
<br>
On 5/4/2025 1:49 PM, Nicolás Papagna Maldonado via Cuis-dev
wrote:
<blockquote type="cite">
<div dir="ltr">Hi folks,
<div><br>
</div>
<div>I don't know if this is a bug or the expected
behavior.</div>
<div><br>
</div>
<div>Today I ran the tests in <font face="monospace">BaseImageTests</font>
with the <font face="monospace">CodeCoverage</font>
package (<a moz-do-not-send="true"
href="https://github.com/npapagna/cuis-code-coverage"
target="_blank">https://github.com/npapagna/cuis-code-coverage</a>)
loaded and one of the <span style="font-family:
monospace;">DecompilerTests </span>failed.</div>
<div>The reason seems to be that <font face="monospace">Decompiler</font>
does not restore unused temporary variables.</div>
<div><br>
</div>
<div>In particular, <font face="monospace">DecompilerTests>>#testDecompilerInClassesCNtoCZ</font>
was failing on <font face="monospace">CodeCoverageTest
temporaryVariable</font>:<br>
<div>(For context: this method is needed to reproduce
a test scenario for the CodeCoverage tool)</div>
<div><br>
</div>
<div><font face="monospace">CodeCoverageTest >>
#temporaryVariable<br>
| a |<br>
a</font>.</div>
<div><font face="monospace"><br>
</font></div>
To reproduce without the CodeCoverage package,
evaluate:
<div><font face="monospace"><br>
</font></div>
<div><font face="monospace">Object compile: 'm1 |a|
a'.<br>
<br>
newCodeString := (Decompiler new<br>
decompile: #m1<br>
in: Object<br>
method: Object >> #m1) decompileString.</font></div>
</div>
<div><font face="monospace"><br>
</font></div>
Notice that <font face="monospace">newCodeString</font>
is <font face="monospace">'m1 ^ self.'</font> and it
should be <font face="monospace">'m1 |a| a'</font>(if
this is really a bug).
<div><font face="monospace"><br>
</font></div>
<div>The code above was run on HEAD at the moment
(6c13d4eda2e9a8c56362ae3363d7b013917227c5).</div>
<div><br>
</div>
<div>Is this something that needs to be fixed?</div>
<div>
<div><font face="monospace"><br>
</font></div>
Best,<br>
Nico PM</div>
</div>
</blockquote>
<br>
<br>
<pre cols="72">--
Juan Vuletich
<a moz-do-not-send="true" href="http://www.cuis-smalltalk.org" target="_blank">www.cuis-smalltalk.org</a>
<a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a moz-do-not-send="true" href="https://github.com/jvuletich" target="_blank">https://github.com/jvuletich</a>
<a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a moz-do-not-send="true" href="https://independent.academia.edu/JuanVuletich" target="_blank">https://independent.academia.edu/JuanVuletich</a>
<a moz-do-not-send="true" href="https://www.researchgate.net/profile/Juan-Vuletich" target="_blank">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a moz-do-not-send="true" href="https://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a moz-do-not-send="true" href="https://twitter.com/JuanVuletich" target="_blank">https://twitter.com/JuanVuletich</a></pre>
</div>
</blockquote>
</div>
<div><br clear="all">
</div>
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature"><br>
Nicolás Papagna</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich</pre>
</body>
</html>