Skip to content

fix(deps): update rust crate uufuzz to 0.11.0 - #357

Merged
cakebaker merged 1 commit into
mainfrom
renovate/uufuzz-0.x
Sep 1, 2026
Merged

fix(deps): update rust crate uufuzz to 0.11.0#357
cakebaker merged 1 commit into
mainfrom
renovate/uufuzz-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
uufuzz (source) dependencies minor 0.10.00.11.0

Release Notes

uutils/coreutils (uufuzz)

v0.11.0

Compare Source

Rust Coreutils 0.11.0 Release:

We are happy to announce the release of Rust Coreutils 0.11.0 - a release focused on error messages, performance and GNU compatibility.
The big change is a new diagnostic engine built on ariadne. When a chmod mode, a cut list, a sort key or a tr set fails to parse, we now echo the arguments back with a caret under the character at fault, like a compiler does. See our blog post for more information: https://uutils.org/blog/2026-08-error-diagnostics/

Example with cut: image

or test: image

PGO release builds are enabled for Linux, macOS and Windows (up to 31% faster), and a lot of per-utility optimization work landed on top of that. We also now treat a utility being significantly slower than GNU as a bug.

We continued to improve the GNU compatibility and we are now at 653 passing, 22 failing, 0 errors.


GNU Test Suite Compatibility:
Result 0.10.0 0.11.0 Change 0.10.0 to 0.11.0 % Total 0.10.0 % Total 0.11.0 % Change 0.10.0 to 0.11.0
Pass 645 653 +8 94.44% 95.33% +0.89%
Skip 9 10 +1 1.32% 1.46% +0.14%
Fail 28 22 -6 4.10% 3.21% -0.89%
Error 1 0 -1 0.15% 0% -0.15%
Total 683 685 +2 (new tests)

Note: 653 passing and 23 failing are both records for us, and this is the first release with no erroring test. Note that the suite grew by 2 tests this cycle (local backport). We also list the tests excluded from the pass/fail percentages now.


GNU testsuite evolution


Highlights:
  • Modern Error Diagnostics (new)

    • A new diagnostic engine based on ariadne. When stderr is a terminal, a parse error is printed as a report: the arguments are echoed back as a source line, a caret marks the culprit and a help line explains the syntax. See the blog post for before/after examples
    • Carets landed in chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df and du
    • A caret can point inside a quoted argument and at a single character. The reports are localized (format, checksum and advice strings) and still print the usual Try '... --help' hint. A label is only added when it says something useful
    • UUTILS_DIAG controls the behavior, and the caret rendering can be compiled out for size-constrained builds
    • Diagnostics are written in a single stderr call, so concurrent writers cannot interleave them
  • Performance

    • PGO (profile-guided optimization) release builds: up to 31% faster - now enabled for the published Linux, macOS and Windows artifacts too.
    • cp: opens the file only once (+32.93%) and reuses the already-open destination fd when a reflink clone falls back
    • join: 1.37x faster on paired input, 2.5x faster than GNU, by skipping the locale comparison when it cannot change the result
    • od --skip-bytes uses splice(2) on non-seekable input; tac uses fast_copy; dd no longer faults in the whole copy buffer before reading and page-aligns its read buffer
    • Fewer allocations and syscalls in ptx (+4% via fxhash, plus fewer per-word allocations), nl (hoisted per-line prefix), tail (no double allocation per reverse chunk, no stat), expand/unexpand (no stat/is_dir), numfmt and sort
    • New benchmarks for ptx, basenc and the numfmt stdin path
    • A utility being significantly slower than GNU is now considered a bug - please report it as one
  • GNU Compatibility

    • 653 passing GNU tests (+8), 23 failures (-6) and no erroring test
    • New GNU-matching options: uname -A/--all-labeled, cut -F and --whitespace-delimited, pr --columns/--join-lines/-f alias and an optional argument for -n
    • Behavior fixes in pr (page length of exactly 10, columns that do not divide evenly, -e at the end of a cluster), numfmt (leading +, scientific notation), uniq/truncate/paste (a repeated option overrides the earlier one), join -o accumulating fields, id group ordering, unexpand/expand tab-list separators, mkdir EEXIST, more -f/-l, fold widths, sort -t=, stat nanosecond timestamps and Block size, od 16 significant digits, date trailing timezones
    • A new gnu/usage_vs_refs.sh check verifies that every option we document also appears in GNU's texi docs
    • More error messages carry the real OS text instead of a stripped or made up one (rm, env, od, chroot, stdbuf, tee, cut, date, tsort, pathchk, sort)
  • Security Hardening

    • mv/cp: xattr TOCTOU fixed by moving to file-descriptor-based operations
    • rm: no longer follows a symlink swapped in at the -r operand
    • chmod: uses fchmodat for recursive mode changes and no longer follows in-tree symlinks with -R --reference
    • cp: does not chmod through the destination symlink; mv does not put a symlink in its target's hardlink group
    • stdbuf: fixed a temporary-directory leak
  • Robustness: Anti-Panic & Anti-Hang

    • Hangs fixed: split endless loop, yes deadlock, sort Lines fuse when a chunk boundary lands exactly at EOF
    • Panics and aborts fixed in stat and csplit on /dev/full, ls with an invalid QUOTING_STYLE on unwritable stderr, od on large ASCII dump widths, printf on large numeric and %s/%c field widths, nl with -w i32::MAX (rejection plus a 32-bit OOM fix), pr and csplit integer overflow, dd u64 wraparound, touch leap-second year overflow, tail -c +N past the seek limit, tac SIGBUS on a truncated mmap, who -q stdout write errors
    • uucore::parse_size no longer overflows on a large % size
  • Cross-platform Reach

    • Windows: kill and uptime implementations, and test -ef, -t, -h/-L, -r, -w, -x
    • WASI: touch timestamps, cp symlinks, expr, cleaned-up core platform abstractions and cat integration coverage
    • df got a fallback statfs path using the mount table; uptime dropped its /proc dependency on more targets; stty and chgrp are now gated by target support; better iOS and Fuchsia handling
  • Dependency Diet

    • Dropped byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref, exacl and dns-lookup in favor of std, rustix and windows-sys
  • Internationalization

    • Symbolic mode parsing errors, the chmod --verbose messages and the new diagnostic strings are now translatable
    • ls sorts names using locale-aware collation, comm compares lines with the locale collation, nl supports multibyte one-character section delimiters and cut handles multibyte fields, bytes and delimiters correctly
    • uucore rebuilds its embedded locales when the consumer's dependencies change
  • Contributions: This release landed 358 pull requests from 26 new contributors. We also passed 1000 people having contributed to uutils coreutils. Per our activity tracking, August 2026 was our busiest month so far, with 476 commits from 57 authors


Call to Action:

Try it in your browser - Online Playground powered by WebAssembly
Help us translate - Contribute to Rust Coreutils on Weblate
Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils

What's Changed

base32

basename

basenc

cat

chmod

chroot

cksum

comm

cp

csplit

cut

date

dd

df

dircolors

dirname

env

expand

expr

fmt

fold

hashsum

head

hostname

id

install

join

kill

ln

ls

mkdir

mkfifo

mktemp

more

mv

nl

numfmt

od

pathchk

pinky

pr

printf

ptx

readlink

rm

sleep

sort

split

stat

stdbuf

tac

tail

tee

test

touch

tr

true

truncate

tsort

uname

unexpand

uniq

uptime

who

yes

Error Diagnostics

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from kaladron as a code owner September 1, 2026 11:48
@codspeed-hq

codspeed-hq Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 7 untouched benchmarks


Comparing renovate/uufuzz-0.x (0e4e12c) with main (09f8818)

Open in CodSpeed

@renovate
renovate Bot force-pushed the renovate/uufuzz-0.x branch from 10327ec to 0e4e12c Compare September 1, 2026 12:31
@cakebaker
cakebaker merged commit 3ccfdb2 into main Sep 1, 2026
26 checks passed
@renovate
renovate Bot deleted the renovate/uufuzz-0.x branch September 1, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant