numfmt: implement the last changes#11411
Draft
sylvestre wants to merge 16 commits intouutils:mainfrom
Draft
Conversation
Merging this PR will improve performance by 24.44%
Performance Changes
Comparing Footnotes
|
xtqqczze
reviewed
Mar 19, 2026
339ca87 to
524c1b1
Compare
Contributor
Author
|
and it passed! |
Skip GNU numfmt.pl tests not yet supported: unit-sep-22-fail, grp-1,
grp-2, delim-7, field-1, field-range-err-{1-4,6-13}, strtod-6,
strtod-6.1, leading-4, debug-2, devdebug-{1-7,9-11}, help-1,
fmt-err-9, fmt-err-11, fmt-15, ign-err-5, ign-err-m2.2, ign-err-m3.1.
Also unconditionally refresh binary symlinks to avoid stale builds.
…alidation Fixes GNU numfmt.pl tests: grp-1, grp-2, debug-2, fmt-err-9, fmt-err-11.
Buffer formatted output so that --invalid=fail does not duplicate lines on error, and --invalid=abort streams directly for partial output. Fixes GNU numfmt.pl test: field-3. Re-enables the full numfmt.pl test suite by removing the skip list added earlier in the stack.
Build the grouped string in a single forward pass using chunk iteration instead of reversing, inserting separators, then reversing again. This avoids an extra String allocation and collection.
Remove the trivial single-use helper and simplify split_next_field into a compact 4-line function.
The two match arms for length 1 and length 2 had identical RawSuffix::try_from checks. Unify into a single check after a boolean guard.
Flatten the nested block scope by moving the output trait object and format dispatch to the same level, reducing indentation.
Use the existing print_warning helper for the grouping-no-effect message instead of a one-off writeln with util_name(). Use hardcoded "numfmt:" prefix for the failed-to-convert message to match the other debug warnings. Remove now-unused util_name import.
…o format_and_write
GNU test: numfmt.pl fmt-15
GNU test: numfmt.pl unit-sep-22-fail
GNU test: numfmt.pl devdebug-*, help-1, field-1, field-range-err-*
… and apply_grouping
Contributor
Author
|
@cakebaker i can split it into several if you want |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
should fix gnu/tests/numfmt/numfmt.pl