bug#80674: DejaGNU vs. Tcl 9

Jacob Bachmeyer <[email protected]> Sat, 28 Mar 2026 22:05:24 -0500
Newsgroups gmane.comp.sysutils.dejagnu.bugs
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============0671694393157754524==
Content-Type: multipart/alternative;
 boundary="------------kNg8EejeYtQEuaG5IgJCevZc"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------kNg8EejeYtQEuaG5IgJCevZc
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

On 3/28/26 06:45, Jakub Jelinek wrote:
> On Fri, Mar 27, 2026 at 10:26:46PM -0500, Jacob Bachmeyer wrote:
>> On 3/27/26 02:04, Jakub Jelinek wrote:
>>> On Thu, Mar 26, 2026 at 08:07:37PM -0500, Jacob Bachmeyer wrote:
>>>
>>>> [...]
>>>>
>>>> For now, this is applied on the PR80674 branch.  Please confirm that this
>>>> solves your problem.
>>> It does for me on Fedora 45, but for some reason not for others on Fedora
>>> 43, seehttps://gcc.gnu.org/PR124641 for details.
>> This looks like the Fedora maintainers and/or Tcl developers have seriously
>> screwed up.

This seems as good a place as any to comment, since you seem to be 
involved in packaging DejaGnu for Fedora:

A quick look at <URL:https://src.fedoraproject.org/rpms/dejagnu> 
suggests that you should take a close look at what your packaging tests 
for DejaGnu are actually running; I believe that your use of 
RUNTESTFLAGS="--ignore pr48155.exp stats.exp" in your check scriptlet is 
inadvertently asking DejaGnu to *only* run stats.exp, which misses most 
of the testsuite.

The comment about the issue is correct: the problem is due to a bug in 
Expect that should be fixed, described in 
<URL:https://lists.gnu.org/archive/html/dejagnu/2021-09/msg00001.html>. 
The issue is tracked as bug#49078 and I would welcome further discussion 
on that matter and work towards resolving the underlying Expect bug at 
<[email protected]>.

> Note, I believe at least in GCC testsuite after the posted patches (i.e.
> case -> switch and -encoding binary to -translation binary) all that is
> needed is to run the testsuite under LC_ALL=C and then it works with both
> tcl8 and tcl9.

I have long had an item on my TODO list to unset CDPATH and neutralize 
the other "Special Shell Variables" described in the Autoconf manual.

In Tcl, {unset ::env(CDPATH)} always works---there is no portability 
issue there.  On the other hand, this looks like we may need LC_* set to 
"C" when the Tcl interpreter is started.

Fortunately, DejaGnu has exactly an opportunity to do that: runtest(1) 
is actually a shell script that locates expect(1) and runtest.exp and 
spawns expect to run the framework and testsuite. Should LC_ALL and 
friends be set to "C" and exported in that shell script?

I am inclined to do this on principle anyway:  testsuite results should 
not be sensitive to the user's locale.  The question is only whether to 
do it in the Tcl code or in the launcher script.


-- Jacob

--------------kNg8EejeYtQEuaG5IgJCevZc
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 3/28/26 06:45, Jakub Jelinek wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:ace_UKfrJpjL8PYE@tucnak">
      <pre wrap="" class="moz-quote-pre">On Fri, Mar 27, 2026 at 10:26:46PM -0500, Jacob Bachmeyer wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">On 3/27/26 02:04, Jakub Jelinek wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">On Thu, Mar 26, 2026 at 08:07:37PM -0500, Jacob Bachmeyer wrote:

</pre>
          <blockquote type="cite">
            <pre wrap="" class="moz-quote-pre">[...]

For now, this is applied on the PR80674 branch.  Please confirm that this
solves your problem.
</pre>
          </blockquote>
          <pre wrap="" class="moz-quote-pre">It does for me on Fedora 45, but for some reason not for others on Fedora
43, seehttps://gcc.gnu.org/PR124641 for details.
</pre>
        </blockquote>
        <pre wrap="" class="moz-quote-pre">
This looks like the Fedora maintainers and/or Tcl developers have seriously
screwed up.
</pre>
      </blockquote>
    </blockquote>
    <p><span style="white-space: pre-wrap">This seems as good a place as any to comment, since you seem to be involved in packaging DejaGnu for Fedora:</span></p>
    <p><span style="white-space: pre-wrap">A quick look at <a class="moz-txt-link-rfc1738" href="https://src.fedoraproject.org/rpms/dejagnu">&lt;URL:https://src.fedoraproject.org/rpms/dejagnu&gt;</a> suggests that you should take a close look at what your packaging tests for DejaGnu are actually running; I believe that your use of RUNTESTFLAGS="--ignore pr48155.exp stats.exp" in your check scriptlet is inadvertently asking DejaGnu to *only* run stats.exp, which misses most of the testsuite.</span></p>
    <p><span style="white-space: pre-wrap">The comment about the issue is correct:  the problem is due to a bug in Expect that should be fixed, described in <a class="moz-txt-link-rfc1738" href="https://lists.gnu.org/archive/html/dejagnu/2021-09/msg00001.html">&lt;URL:https://lists.gnu.org/archive/html/dejagnu/2021-09/msg00001.html&gt;</a>.  The issue is tracked as bug#49078 and I would welcome further discussion on that matter and work towards resolving the underlying Expect bug at <a class="moz-txt-link-rfc2396E" href="mailto:[email protected]">&lt;[email protected]&gt;</a>.</span></p>
    <blockquote type="cite" cite="mid:ace_UKfrJpjL8PYE@tucnak">
      <pre wrap="" class="moz-quote-pre">Note, I believe at least in GCC testsuite after the posted patches (i.e.
case -&gt; switch and -encoding binary to -translation binary) all that is
needed is to run the testsuite under LC_ALL=C and then it works with both
tcl8 and tcl9.
</pre>
    </blockquote>
    <p>I have long had an item on my TODO list to unset CDPATH and
      neutralize the other "Special Shell Variables" described in the
      Autoconf manual.</p>
    <p>In Tcl, {unset ::env(CDPATH)} always works---there is no
      portability issue there.  On the other hand, this looks like we
      may need LC_* set to "C" when the Tcl interpreter is started.</p>
    <p>Fortunately, DejaGnu has exactly an opportunity to do that: 
      runtest(1) is actually a shell script that locates expect(1) and
      runtest.exp and spawns expect to run the framework and testsuite. 
      Should LC_ALL and friends be set to "C" and exported in that shell
      script?</p>
    <p>I am inclined to do this on principle anyway:  testsuite results
      should not be sensitive to the user's locale.  The question is
      only whether to do it in the Tcl code or in the launcher script.</p>
    <p><br>
    </p>
    <p>-- Jacob</p>
  </body>
</html>

--------------kNg8EejeYtQEuaG5IgJCevZc--




--===============0671694393157754524==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQnVnLWRlamFn
bnUgbWFpbGluZyBsaXN0CkJ1Zy1kZWphZ251QGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3Jn
L21haWxtYW4vbGlzdGluZm8vYnVnLWRlamFnbnUK

--===============0671694393157754524==--