glibc test time regression after gawk update
Sam James
sam@gentoo.org
Sun Jul 5 23:19:03 GMT 2026
arnold@skeeve.com writes:
> Hi.
Hi Arnold,
>
> I suspect that the problem is line 34 in the script:
>
> value = gensub(/^(INF|NAN|inf|nan)/, "+\\1", 1, val)
>
> There was a bug in gensub with \N escapes that has been fixed.
> Can you try with https://www.skeeve.com/gawk/gawk-5.4.0d.tar.gz?
>
> FYI, feedback on this ASAP would be really good, as I am planning
> to release 5.4.1 this week.
Sorry for the delay, I'd tried to find time earlier this week but events
got the better of me.
It looks like it solves the problem:
```
$ hyperfine "make test t=stdio-common/tst-printf-format-vas-double-f AWK=/tmp/gawk-5.4.0/bin/gawk" "make test t=stdio-common/tst-printf-format-vas-double-f AWK=/tmp/gawk-5.4-stable/bin/gawk"
Benchmark 1: make test t=stdio-common/tst-printf-format-vas-double-f AWK=/tmp/gawk-5.4.0/bin/gawk
Time (mean ± σ): 3.303 s ± 0.013 s [User: 3.567 s, System: 0.116 s]
Range (min … max): 3.281 s … 3.320 s 10 runs
Benchmark 2: make test t=stdio-common/tst-printf-format-vas-double-f AWK=/tmp/gawk-5.4-stable/bin/gawk
Time (mean ± σ): 2.369 s ± 0.018 s [User: 2.632 s, System: 0.114 s]
Range (min … max): 2.352 s … 2.415 s 10 runs
Summary
make test t=stdio-common/tst-printf-format-vas-double-f AWK=/tmp/gawk-5.4-stable/bin/gawk ran
1.39 ± 0.01 times faster than make test t=stdio-common/tst-printf-format-vas-double-f AWK=/tmp/gawk-5.4.0/bin/gawk
```
Hopefully Florian can confirm as well. I didn't compare the full
testsuite time, just picked a sample of the tst-printf-format-* tests
(as for some reason I couldn't easily re-run just all of those with
`subdirs=`).
>
> Thanks,
>
> Arnold
cheers,
sam
>
> Sam James <sam@gentoo.org> wrote:
>
>> Sam James <sam@gentoo.org> writes:
>>
>> > Florian Weimer <fweimer@redhat.com> writes:
>> >
>> >> It looks like we have a very substantial test time regression in glibc
>> >> after a gawk update. Based on quick poking with GDB, it may be related
>> >> to the MinRX change in gawk 5.4.0.
>> >>
>> >> This is the script:
>> >>
>> >> <https://sourceware.org/cgit/glibc/tree/stdio-common/tst-printf-format.awk>
>> >>
>> >> Is this expected? The input files can be quite large, with very long
>> >> lines, too.
>> >>
>> >> I suppose we can switch back to the old matcher (will that remain
>> >> available?), or maybe run it under the C locale.
>> >
>> > Maciej, can you take a look? I suspect you're best placed to try reduce
>> > something here as you're the author of the tests.
>>
>> Resending.
>>
>> >
>> >>
>> >> Thanks,
>> >> Florian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 418 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20260706/5a344ac2/attachment.sig>
More information about the Libc-alpha
mailing list