Rust Coreutils 0.7.0 Release:
We are excited to announce the release of Rust Coreutils 0.7.0 — a performance-focused release with major optimizations across dozens of utilities, continued safety improvements replacing unsafe code with safe abstractions, and a comprehensive campaign to eliminate panics on write errors. We also contributed many patches upstream to GNU coreutils, and welcomed their feedbacks and supports, strengthening both projects!
GNU Test Suite Compatibility:
| Result | 0.6.0 | 0.7.0 | Change 0.6.0 to 0.7.0 | % Total 0.6.0 | % Total 0.7.0 | % Change 0.6.0 to 0.7.0 |
|---|---|---|---|---|---|---|
| Pass | 622 | 629 | +7 | 96.28% | 94.59% | -1.69% |
| Skip | 7 | 13 | +6 | 1.08% | 1.95% | +0.87% |
| Fail | 16 | 23 | +7 | 2.48% | 3.46% | +0.98% |
| Error | 1 | 0 | -1 | 0.15% | 0% | -0.15% |
| Total | 646 | 665 | +19 (new tests) |
Note: The GNU test reference was updated from 9.9 to 9.10, adding 19 new tests. While the pass percentage decreased due to these newly added tests, the absolute number of passing tests increased by 7 and errors were eliminated entirely. Work is ongoing to address the new test failures.
Highlights:
- GNU Compatibility & Upstream Contributions
- 629 passing tests (+7 from 0.6.0), with 19 new tests added from the GNU 9.10 update
- Updated GNU test reference from 9.9 to 9.10
- Contributed numerous patches upstream to GNU coreutils, benefiting both projects
- New GNU compatibility fixes across
date,fmt,kill,ptx,numfmt,cksum, and more -
Took over maintenance of
num-prime, the primality testing library used byfactor -
Performance Overhaul
- Faster hash maps:
rustc-hashinls,du,tsort,shuf,mv;foldhashinsort unexpand/expand: ASCII fast-path, buffered reads — 14%+ gain inunexpandshuf,split,sort,du: Reduced malloc allocations (+3–6% indu, +4% inshuf)nl: Optimized withitoaand direct writingtrue/false: Removedclapdependency, smaller binary, faster startup-
uucore: Disabled signal setup in simple utilities for binary size and startup speed -
Robustness: Eliminated
/dev/fullPanics - Fixed panics when stderr is
/dev/fullacross 20+ utilities (echo,date,sort,expr,hostname,id,comm,pr,dircolors, and more) -
Generic fix ensuring unrecognized options with
2>/dev/fulldo not abort -
Safety & Code Quality
- Replaced unsafe
libccalls with safenixcrate wrappers inuucore(umask,mkdirat, and more) andmknod - Eliminated TOCTOU races in
ln,tac, andinstall -D rm:--preserve-rootnow works correctly on symlinks-
MSRV updated to 1.88
-
Notable Bug Fixes
date: Extensive fixes —-u/-s/-dflags, timezone abbreviation lookup and DST, RFC-822 format,%+/%_modifiers,--debug, localedate_fmtcp: Readonly directories,-a/-zflags, special files, non-UTF-8 directory namesmv: Preserve symlinks during cross-device moves, handle FIFOs in directoriesls: Hyperlink OSC 8 format, dired reports, fd leak on deep recursion, invalid UTF-8 hidden filessort: Collator panic in worker threads, scientific notation parsingpaste: Multi-byte delimiters, GNU escape sequences, bounded bufferingprintf:%qshell quoting with control chars and quotesptx:-t/--typeset-mode, multibyte Unicode panic, GNU default behaviornumfmt:--debugflag, empty delimiter, null byte handling, error message formattingcksum: SHAKE algorithms,--binary/--text/--tagerrors-
cut,tac,tail,tr,uniq,od,chroot,stat,mktemp,pr,readlink,ln,kill,nproc,rm,env,sync,fmt,factor,wc: Various GNU compatibility and correctness fixes -
Platform Support
- NetBSD and PowerPC build fixes
- Windows:
tacstdin piping,test -r/-w/-x, publish static*.exebinaries - WebAssembly: Publish
*.wasmartifacts stdbuf: Supportlibstdbufin same directory as binary-
NixOS test compatibility fix; added security audit workflow
-
Contributions: This release was made possible by 23 new contributors joining our community
Call to Action:
Help us translate - Contribute translations at Weblate Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
What's Changed
cat
- cat: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/10885
cksum
- *sum: Fix locales fetching from
checksum_commonafter installation by @RenjiSann in https://github.com/uutils/coreutils/pull/10575 - *sum: Fix read_byte_lines discarding read errors by @RenjiSann in https://github.com/uutils/coreutils/pull/10671
- test/cksum: implement
test_signed_checksumsby @0xMillyByte in https://github.com/uutils/coreutils/pull/10714 - cksum: Accept SHAKE algorithms by @RenjiSann in https://github.com/uutils/coreutils/pull/10772
- cksum family: Backport new errors for --binary, --text and --tag by @oech3 in https://github.com/uutils/coreutils/pull/10618
- cksum family: Fix clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/11110
chroot
- chroot: fix gid being set by uid with --userspec [#10307] by @cerdelen in https://github.com/uutils/coreutils/pull/10465
- chroot: use var_os by @xtqqczze in https://github.com/uutils/coreutils/pull/11070
comm
- comm /etc/pacman.conf /dev/null 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10746
- date, comm, tty: Fixing handling output to dev/null by @ChrisDryden in https://github.com/uutils/coreutils/pull/10888
coreutils
- tests/misc/coreutils.sh: Fail with invalid binary name by @oech3 in https://github.com/uutils/coreutils/pull/10258
- coreutils: output expected error for unrecognized options by @ChrisDryden in https://github.com/uutils/coreutils/pull/9869
- coreutils: Let the name *utils valid by @oech3 in https://github.com/uutils/coreutils/pull/10729
- coreutils: Fix 2>/dev/full aborts & drop a sed for GnuTests by @oech3 in https://github.com/uutils/coreutils/pull/10740
- all: --typo 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10764
- Add regression test for coreutils --list by @oech3 in https://github.com/uutils/coreutils/pull/10858
cp
- cp: fix recursive copy of readonly directories by @nikolalukovic in https://github.com/uutils/coreutils/pull/10529
- cp: improve code clarity and remove redundant filesystem checks by @sylvestre in https://github.com/uutils/coreutils/pull/10790
- cp: fixing cp -a functionality to match gnu implementation for -z flag handling and for folders by @ChrisDryden in https://github.com/uutils/coreutils/pull/10207
- cp: Fix panic when recursively copying a directory with a non-UTF8 name by @aweinstock314 in https://github.com/uutils/coreutils/pull/11148
- cp: handle special files by @victor-prokhorov in https://github.com/uutils/coreutils/pull/11163
csplit
- refactor(csplit): use &str slices for patterns by @xtqqczze in https://github.com/uutils/coreutils/pull/11013
- csplit: add benchmarks for line number and regex pattern splitting by @sylvestre in https://github.com/uutils/coreutils/pull/10927
cut
- cut: fix -s flag for newline delimiter and optimize memory allocation by @akervald in https://github.com/uutils/coreutils/pull/11143
- cut: two simple refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/11194
date
- date: fix -u flag to match GNU behavior for input parsing by @ChrisDryden in https://github.com/uutils/coreutils/pull/10715
- date: Fix format optional argument to capture all following parameters by @cerdelen in https://github.com/uutils/coreutils/pull/10914
- date: fix -s UTC conversion losing timezone offset by @yachi in https://github.com/uutils/coreutils/pull/10828
- date: fix RFC-822 format to always use English names by @sylvestre in https://github.com/uutils/coreutils/pull/10932
- date: bump parse_datetime & add test for leap-1 GNU test by @sylvestre in https://github.com/uutils/coreutils/pull/10933
- date: add tests to match GNU's by @sylvestre in https://github.com/uutils/coreutils/pull/10939
- date: fix double periods in Hungarian month abbreviations by @naoNao89 in https://github.com/uutils/coreutils/pull/10945
- date: fix subfmt-up1, fill-1, pct-pct, and invalid-high-bit-set tests / implement --debug by @sylvestre in https://github.com/uutils/coreutils/pull/10940
- date: use locale date_fmt instead of D_T_FMT for default format by @ChrisDryden in https://github.com/uutils/coreutils/pull/10935
- date: Fix Error message missing '+' for format string after valid d flag by @cerdelen in https://github.com/uutils/coreutils/pull/10982
- date: fix -d with relative dates and timezone abbreviations by @yachi in https://github.com/uutils/coreutils/pull/10956
- date: fix timezone abbreviations using wrong offset outside their DST season by @aguimaraes in https://github.com/uutils/coreutils/pull/11045
- date: fix %+ and %_ modifier edge cases by @naoNao89 in https://github.com/uutils/coreutils/pull/10999
- date: extend tz abbreviation lookup by @cerdelen in https://github.com/uutils/coreutils/pull/11229
- date: Remove eprintln! to avoid 2>/dev/full abort by @oech3 in https://github.com/uutils/coreutils/pull/11228
- date, comm, tty: Fixing handling output to dev/null by @ChrisDryden in https://github.com/uutils/coreutils/pull/10888
dd
- dd: simplify signal handling by removing Alarm timer thread by @ChrisDryden in https://github.com/uutils/coreutils/pull/10768
df
- df: fallback when proc masked by @ChrisDryden in https://github.com/uutils/coreutils/pull/10417
dircolors
- dircolors >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10948
du
- du: deduplicate Stat::new call by @svlv in https://github.com/uutils/coreutils/pull/10584
- du: Use rustc-hash for du -a / performance by @oech3 in https://github.com/uutils/coreutils/pull/10663
- du: Flags 'm', 'k', 'm' should be POSIX style overriden by @cerdelen in https://github.com/uutils/coreutils/pull/10664
- Du size_format flag override by @cerdelen in https://github.com/uutils/coreutils/pull/10743
- du: malloc perf +3~6% by @oech3 in https://github.com/uutils/coreutils/pull/11034
echo
- echo --version >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/10853
env
- env: fix regression of
--ignore-signal=PIPEby @Ecordonnier in https://github.com/uutils/coreutils/pull/9618
expand
- expand: remove read_until by @cerdelen in https://github.com/uutils/coreutils/pull/10657
- expand: remove empty after help by @cakebaker in https://github.com/uutils/coreutils/pull/10977
- expand: Fix performance drop with cgu=1 by ascii fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11104
expr
- expr --version >/dev/full panics & --help > /dev/full should fail by @oech3 in https://github.com/uutils/coreutils/pull/10854
factor
- factor: add a test for a num-prime issue by @sylvestre in https://github.com/uutils/coreutils/pull/11096
- factor: trim also null-chars by @yotam-medini in https://github.com/uutils/coreutils/pull/11182
false
- false: dedup set_exit_code(1) by @oech3 in https://github.com/uutils/coreutils/pull/10823
- true, false: Fix broken pipe by @oech3 in https://github.com/uutils/coreutils/pull/11204
- true, false: drop Vec for binary size and perf by @oech3 in https://github.com/uutils/coreutils/pull/11223
fmt
- fmt: restore GNU compatibility for tests/fmt/width by @karanabe in https://github.com/uutils/coreutils/pull/11073
fold
- fold: refactor compute_col_count and add character mode tests by @ChrisDryden in https://github.com/uutils/coreutils/pull/10533
- fold: replace truncate(0) with clear() by @xtqqczze in https://github.com/uutils/coreutils/pull/11059
hostname
- hostname: fix panic on hostname > /dev/full by @WhateverAWS in https://github.com/uutils/coreutils/pull/10912
- feat(hostname): add benchmark with large /etc/hosts by @naoNao89 in https://github.com/uutils/coreutils/pull/10979
id
- Id: don't panic on write error by @FidelSch in https://github.com/uutils/coreutils/pull/10769
install
- Fixed permissions in install for unix by @max-amb in https://github.com/uutils/coreutils/pull/10564
- fix(install): prevent symlink race condition in install -D (fixes [#10013]) by @abendrothj in https://github.com/uutils/coreutils/pull/10140
kill
- kill: fix GNU compatibility tests for RTMIN and RTMAX by @karanabe in https://github.com/uutils/coreutils/pull/11224
ln
- fix: eliminate TOCTOU races in ln and tac by deferring is_dir() checks by @abendrothj in https://github.com/uutils/coreutils/pull/10991
- ln: Interactive and Force override each other instead of defaulting to Force if both are specified by @aweinstock314 in https://github.com/uutils/coreutils/pull/11129
ls
- ls: Replace Fnv with rustc-hash by @oech3 in https://github.com/uutils/coreutils/pull/10686
- ls: fix hyperlink functionality to use correct OSC 8 format and handle symlink targets by @sylvestre in https://github.com/uutils/coreutils/pull/10824
- ls: fix ls dired reports by @mattsu2020 in https://github.com/uutils/coreutils/pull/10527
- ls: release directory fds before recursing to avoid EMFILE by @ChrisDryden in https://github.com/uutils/coreutils/pull/10894
- ls: Update French translations by @sylvestre in https://github.com/uutils/coreutils/pull/11003
- ls: Use rustc-hash at colors by @oech3 in https://github.com/uutils/coreutils/pull/10700
- ls: Treat paths starting with a dot as hidden even if they contain invalid UTF-8. by @aweinstock314 in https://github.com/uutils/coreutils/pull/11135
mktemp
- mktemp: handle invalid UTF-8 in suffix gracefully by @sylvestre in https://github.com/uutils/coreutils/pull/10818
- mktemp: use env::os_var by @xtqqczze in https://github.com/uutils/coreutils/pull/11113
- mktemp: Don't panic when getrandom failed by @oech3 in https://github.com/uutils/coreutils/pull/11154
mknod
- mKnod: Refactor to remove unsafe code by @mattsu2020 in https://github.com/uutils/coreutils/pull/10138
mv
- mv: handle FIFOs inside directories during cross-partition move by @ChrisDryden in https://github.com/uutils/coreutils/pull/10857
- fix(mv): correct selinux cfg gating for non-Linux platforms by @naoNao89 in https://github.com/uutils/coreutils/pull/10989
- mv: Use rustc-hash by @oech3 in https://github.com/uutils/coreutils/pull/11010
- mv: preserve symlinks during cross-device moves instead of expanding them by @sylvestre in https://github.com/uutils/coreutils/pull/10546
nl
- perf(nl): optimize line numbering by using itoa and direct writing by @CrazyRoka in https://github.com/uutils/coreutils/pull/10757
nproc
- nproc: process space in OMP_NUM_THREADS by @cuiweixie in https://github.com/uutils/coreutils/pull/10973
- nproc: Cleanup a const by @oech3 in https://github.com/uutils/coreutils/pull/11191
- nproc: Minor cleanup by @oech3 in https://github.com/uutils/coreutils/pull/11192
numfmt
- numfmt: add --debug flag to print warnings about invalid input by @ChrisDryden in https://github.com/uutils/coreutils/pull/10110
- numfmt: numfmt --debug 2>/dev/full does not abort by @tuananh in https://github.com/uutils/coreutils/pull/10668
- numfmt: fix empty delimiter and whitespace handling by @ChrisDryden in https://github.com/uutils/coreutils/pull/10350
- numfmt: optimize output handling by using stdout directly by @xtqqczze in https://github.com/uutils/coreutils/pull/11051
- fix(numfmt): Read lines only up to null byte (as GNU does) by @FidelSch in https://github.com/uutils/coreutils/pull/11146
- fix(numfmt): format output on error messages by @FidelSch in https://github.com/uutils/coreutils/pull/11179
- numfmt: stop a clone by @oech3 in https://github.com/uutils/coreutils/pull/11221
od
- od: fix od -v /dev/zero panic by @mattsu2020 in https://github.com/uutils/coreutils/pull/10576
paste
- paste: support multi-byte delimiters and GNU escape sequences by @ChrisDryden in https://github.com/uutils/coreutils/pull/10840
- paste: avoid unbounded buffering for single input by @mattsu2020 in https://github.com/uutils/coreutils/pull/11060
pr
- pr: fix column behavior for short files by @jfinkels in https://github.com/uutils/coreutils/pull/10379
- pr missing 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10731
- pr: implement the -e flag by @cerdelen in https://github.com/uutils/coreutils/pull/10167
printf
- printf: fix %q shell quoting with control chars and quotes by @sylvestre in https://github.com/uutils/coreutils/pull/10816
ptx
- ptx: implement -t/--typeset-mode to change default width to 100 by @ChrisDryden in https://github.com/uutils/coreutils/pull/10856
- ptx: fix panic when truncation string/keyword contain multibyte Unicode by @Xylphy in https://github.com/uutils/coreutils/pull/10836
- ptx: match GNU default behavior by skipping non-alphabetic index tokens by @Xylphy in https://github.com/uutils/coreutils/pull/10919
readlink
- readlink: Set silent mode as default by @denendaden in https://github.com/uutils/coreutils/pull/10711
rm
- rm --preserve-root should work on symlink too by @sylvestre in https://github.com/uutils/coreutils/pull/9706
- rm: report permission denied for unreadable subdirectories by @o1x3 in https://github.com/uutils/coreutils/pull/10974
shuf
- shuf: Use rustc-hash for performance by @oech3 in https://github.com/uutils/coreutils/pull/10648
- shuf: Drop inline after switched to fxhash by @oech3 in https://github.com/uutils/coreutils/pull/10781
- shuf: Reduce malloc by @oech3 in https://github.com/uutils/coreutils/pull/10998
- shuf: delete useless cast by @oech3 in https://github.com/uutils/coreutils/pull/11106
- shuf: try Vec first and fallback to HashMap if it cause OOM by @oech3 in https://github.com/uutils/coreutils/pull/11169
- shuf: Reduce malloc, perf +4% by @oech3 in https://github.com/uutils/coreutils/pull/11219
sort
- sort: remove redundant if by @oech3 in https://github.com/uutils/coreutils/pull/10716
- Sort: Use ahash by @oech3 in https://github.com/uutils/coreutils/pull/10783
- sort: making ClosedCompressedTmpFile::reopen() not panic. by @devnexen in https://github.com/uutils/coreutils/pull/10807
- sort: fix panic when collator not available in worker threads by @sylvestre in https://github.com/uutils/coreutils/pull/10915
- fix: scientific notation is incorrectly parsed in general numeric sort by @Kaua-Klassmann in https://github.com/uutils/coreutils/pull/10437
- sort: use LazyLock by @xtqqczze in https://github.com/uutils/coreutils/pull/10969
- Sort debug message by @hlsxx in https://github.com/uutils/coreutils/pull/10960
- sort: Replace malloc and 0 fill with huge reserve & min 0 fill by @oech3 in https://github.com/uutils/coreutils/pull/10975
- sort: remove reserve which is difficult to understand by @oech3 in https://github.com/uutils/coreutils/pull/11040
- sort: update DEFAULT_BUF_SIZE to 8 KiB by @xtqqczze in https://github.com/uutils/coreutils/pull/11041
- sort: failed to set message sort by @hlsxx in https://github.com/uutils/coreutils/pull/11137
- sort --compress-program missing 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10951
- deps: replace ahash with foldhash by @xtqqczze in https://github.com/uutils/coreutils/pull/11187
split
- perf(split): reuse buffer in chunked splitting loop by @CrazyRoka in https://github.com/uutils/coreutils/pull/10695
- perf(split): optimize FixedWidthNumber Display implementation by @CrazyRoka in https://github.com/uutils/coreutils/pull/10723
- split: Reduce malloc by @oech3 in https://github.com/uutils/coreutils/pull/10976
stat
- stat: fix mount table read when /proc is unavailable by @sylvestre in https://github.com/uutils/coreutils/pull/10300
- print_numeric: print mode in octal when the mode is too large by @Connor-GH in https://github.com/uutils/coreutils/pull/10208
stdbuf
- stdbuf: support libstdbuf in same directory as stdbuf by @Ecordonnier in https://github.com/uutils/coreutils/pull/10352
- stdbuf: fix warning from
uninlined_format_argsby @cakebaker in https://github.com/uutils/coreutils/pull/10784
stty
- stty: cleanup cfg by @oech3 in https://github.com/uutils/coreutils/pull/10879
- stty: fix compilation on PowerPC architectures by @sylvestre in https://github.com/uutils/coreutils/pull/11050
sync
- sync: handle fcntl errors with localized warnings by @sylvestre in https://github.com/uutils/coreutils/pull/10330
- sync: open file with nonblock by @reubenwong97 in https://github.com/uutils/coreutils/pull/10765
- sync: return after checking all inputs by @reubenwong97 in https://github.com/uutils/coreutils/pull/10742
tac
- tac: fix stdin piping on Windows by skipping empty mmap results by @ChrisDryden in https://github.com/uutils/coreutils/pull/10795
- tac: support non-UTF-8 separator by @victor-prokhorov in https://github.com/uutils/coreutils/pull/10934
tail
- tail: report PermissionDenied instead of No such file when metadata fails by @RedNhight in https://github.com/uutils/coreutils/pull/11018
- tests/tail: reduce delays in multiple tests to speed up execution by @domysu in https://github.com/uutils/coreutils/pull/11206
test
- test: make the man-page readable + sync by @matttbe in https://github.com/uutils/coreutils/pull/10737
- test: implement -r/-w/-x on Windows by @anihal in https://github.com/uutils/coreutils/pull/11120
tr
- tr: fix possible usage in invalid utf8 set sequence. by @devnexen in https://github.com/uutils/coreutils/pull/10791
- tr: simplify truncate logic by @xtqqczze in https://github.com/uutils/coreutils/pull/11072
true
- true/false: remove large clap call by @my4ng in https://github.com/uutils/coreutils/pull/10673
- true, false: Improve perf & fix clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/11200
- feat(true/false): add benchmarks for startup performance by @naoNao89 in https://github.com/uutils/coreutils/pull/10996
tsort
- tsort: Use rustc-hash by @oech3 in https://github.com/uutils/coreutils/pull/10680
unexpand
- Unexpand use buffered reads + tests by @cerdelen in https://github.com/uutils/coreutils/pull/10831
- unexpand: codegen-units=1 by @oech3 in https://github.com/uutils/coreutils/pull/10817
- unexpand: Refactor functions to use less parameters by @cerdelen in https://github.com/uutils/coreutils/pull/10900
- unexpand: ascii fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11114
- unexpand: reuse a smaller buf, perf 14%+ by @oech3 in https://github.com/uutils/coreutils/pull/11178
uniq
- uniq: fix -w to count bytes in C locale by @aguimaraes in https://github.com/uutils/coreutils/pull/11061
uptime
- uptime: fix "unused import" warnings in test file by @cakebaker in https://github.com/uutils/coreutils/pull/10651
- uptime: Remove wincode and wincode-derive dependencies by @ChrisDryden in https://github.com/uutils/coreutils/pull/10802
- fix: uptime > /dev/full panic fix by @hlsxx in https://github.com/uutils/coreutils/pull/10827
vdir
- vdir: make vdir an alias of ls to resolve missing ftl by @NatsuCamellia in https://github.com/uutils/coreutils/pull/10434
wc
- wc: stop processing --files0-from input after stdout write failure by @mattsu2020 in https://github.com/uutils/coreutils/pull/11023
whoami
- whoami: fix usage line for unexpected arguments by @YuF-9468 in https://github.com/uutils/coreutils/pull/11159
uucore
- uucore: refactor digest_reader to use ReadingMode enum by @0xMillyByte in https://github.com/uutils/coreutils/pull/10720
- uucore: Use
nix::sys::stat::umaskinuucore::mode::get_umaskby @mattsu2020 in https://github.com/uutils/coreutils/pull/11102 - uucore: fix correct mkdirat implementation to use nix crate's mkdirat function by @mattsu2020 in https://github.com/uutils/coreutils/pull/11126
- uucore: replace unsafe libc calls with safe nix crate wrappers by @mattsu2020 in https://github.com/uutils/coreutils/pull/11156
- uucore: use transmute instead of raw pointers by @xtqqczze in https://github.com/uutils/coreutils/pull/11077
- uucore: Disallow slashes in determine_backup_suffix by @aweinstock314 in https://github.com/uutils/coreutils/pull/11149
- uucore: disable signals at simple utils for binary size and fast startup by @oech3 in https://github.com/uutils/coreutils/pull/11186
- dedup high-cost localization setup by @oech3 in https://github.com/uutils/coreutils/pull/11147
CI & Build
- Catch regressions at early stage by @oech3 in https://github.com/uutils/coreutils/pull/10627
- ci: enable memory profiling again by @not-matthias in https://github.com/uutils/coreutils/pull/10659
- Revert "CICD.yml: upload binaries without version string" by @sylvestre in https://github.com/uutils/coreutils/pull/10676
- Fix tag/latest-commit & comment naming policy by @oech3 in https://github.com/uutils/coreutils/pull/10684
- fuzzing.yml: Use prebuilt for faster setup by @oech3 in https://github.com/uutils/coreutils/pull/10498
- chore: run pre-commit on all files by @aaron-ang in https://github.com/uutils/coreutils/pull/10119
- MSRV 1.88 by @oech3 in https://github.com/uutils/coreutils/pull/10771
- Drop release-fast profile for simplicity by @oech3 in https://github.com/uutils/coreutils/pull/10476
- actions: add security audit workflow by @xtqqczze in https://github.com/uutils/coreutils/pull/10767
- Publish *.wasm by @oech3 in https://github.com/uutils/coreutils/pull/10656
- Add rust-version field to all Cargo.toml files by @xtqqczze in https://github.com/uutils/coreutils/pull/10778
- GnuTests: 9.10, remove a bunch of backported tests by @oech3 in https://github.com/uutils/coreutils/pull/10721
- build: sort coreutils entries at build time by @Xylphy in https://github.com/uutils/coreutils/pull/10820
- GNUmakefile: Allow cross-build for Windows by @oech3 in https://github.com/uutils/coreutils/pull/10897
- CICD: Publish static individual *.exe by @oech3 in https://github.com/uutils/coreutils/pull/10903
- benchmarks.yml: Use prebuilt tools for reproducible benches by @oech3 in https://github.com/uutils/coreutils/pull/10497
- ci: remove GNU build caching from GnuTests workflow by @ChrisDryden in https://github.com/uutils/coreutils/pull/10961
- CICD: Introduce check-only for Redox CI by @oech3 in https://github.com/uutils/coreutils/pull/10950
- rust: use const_locks feature by @xtqqczze in https://github.com/uutils/coreutils/pull/10968
- uutests: preserve PATH in UCommand to fix NixOS test failures by @0xMillyByte in https://github.com/uutils/coreutils/pull/10959
- build-gnu: fix factor tests being re-added by automake during make check by @ChrisDryden in https://github.com/uutils/coreutils/pull/10907
- Prevent make check from rebuilding GNU binaries over uutils ones by @ChrisDryden in https://github.com/uutils/coreutils/pull/11049
- Disable strip related tests on Android by @oech3 in https://github.com/uutils/coreutils/pull/11047
- test_env: Make argv0 tests compatible with Ubuntu patch by @oech3 in https://github.com/uutils/coreutils/pull/10834
- GnuTests: Use our libstdbuf.so by @oech3 in https://github.com/uutils/coreutils/pull/10793
- Avoid non reproducible cache generation at codcov by @oech3 in https://github.com/uutils/coreutils/pull/10926
- Use MULTICALL=y at toybox test for faster CI by @oech3 in https://github.com/uutils/coreutils/pull/10370
- CICD: Drop a duplicated test producing huge caches by @oech3 in https://github.com/uutils/coreutils/pull/10513
- Don't fail when sccache caused network error & mark 2 tests flakey by @oech3 in https://github.com/uutils/coreutils/pull/11098
- Don't wrap rustc when sccache action caused network err by @oech3 in https://github.com/uutils/coreutils/pull/11141
- Cargo.toml: Avoid huge diff generation at version bump by @oech3 in https://github.com/uutils/coreutils/pull/11131
- Cargo.toml: Define feat_wasm by @oech3 in https://github.com/uutils/coreutils/pull/11074
- Mark pr/bounded-memory flakey & drop 2 useless setup by @oech3 in https://github.com/uutils/coreutils/pull/10887
- Mark date-locale-hour flakey & drop a useless cache action by @oech3 in https://github.com/uutils/coreutils/pull/11093
- Updating intermittent gnu test failures to reflect recent changes by @ChrisDryden in https://github.com/uutils/coreutils/pull/10804
Documentation
- README.md: Don't recommend latest-commit for everyone by @oech3 in https://github.com/uutils/coreutils/pull/10678
- add 0.5.0 & 0.6.0 release notes by @sylvestre in https://github.com/uutils/coreutils/pull/10709
- Remove the word: hashsums by @oech3 in https://github.com/uutils/coreutils/pull/10674
- fix docs hashsumS and test by @Its-Just-Nans in https://github.com/uutils/coreutils/pull/7936
- head: improve help grammar by @memark in https://github.com/uutils/coreutils/pull/10848
- Fix for potential typos by @lanceXwq in https://github.com/uutils/coreutils/pull/10822
- chore: use consistent copyright header in
.rsfiles by @xtqqczze in https://github.com/uutils/coreutils/pull/11020
Code Quality & Cleanup
- clippy: fix nightly map_unwrap_or lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10625
- Re-enable unused_qualifications lint by @Xylphy in https://github.com/uutils/coreutils/pull/10571
- chore: a few more Clippy fixes by @nyurik in https://github.com/uutils/coreutils/pull/10697
- chore: minor optimizations by @nyurik in https://github.com/uutils/coreutils/pull/10707
- chore: fix
clippy::single_match_elseby @nyurik in https://github.com/uutils/coreutils/pull/10699 - chore:
clippy::unreadable_literalby @nyurik in https://github.com/uutils/coreutils/pull/10717 - refactor: removing unnecessary references in fn signatures by @nyurik in https://github.com/uutils/coreutils/pull/10703
- chore:
clippy::wildcard_importsby @nyurik in https://github.com/uutils/coreutils/pull/10719 - chore:
clippy::unnecessary_wrapsby @nyurik in https://github.com/uutils/coreutils/pull/10722 - chore: a few minor lints by @nyurik in https://github.com/uutils/coreutils/pull/10754
- chore:
clippy::redundant_closure_for_method_callsby @nyurik in https://github.com/uutils/coreutils/pull/10704 - refactor: inline format! args in a few places by @nyurik in https://github.com/uutils/coreutils/pull/10730
- clippy: fix manual_is_multiple_of lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10775
- clippy: fix struct_field_names lint by @xtqqczze in https://github.com/uutils/coreutils/pull/10902
- clippy: fix nightly lints by @xtqqczze in https://github.com/uutils/coreutils/pull/10970
- clippy: fix lints by @xtqqczze in https://github.com/uutils/coreutils/pull/11000
- clippy: fix nightly lints by @xtqqczze in https://github.com/uutils/coreutils/pull/11232
- clippy: enable
struct_field_nameslint by @cakebaker in https://github.com/uutils/coreutils/pull/11214 - chore: Enable workspace lints in uutest crate by @Xylphy in https://github.com/uutils/coreutils/pull/10727
- deps: remove unused rust deps by @xtqqczze in https://github.com/uutils/coreutils/pull/10688
- use zip for cleaner iteration with 1-based index by @xtqqczze in https://github.com/uutils/coreutils/pull/10963
- refactor: simplify UError construction by @xtqqczze in https://github.com/uutils/coreutils/pull/11171
- refactor: use slice::get for clarity by @xtqqczze in https://github.com/uutils/coreutils/pull/11108
- tail: disallow clippy::wrong_self_convention by @oech3 in https://github.com/uutils/coreutils/pull/11145
- Remove hashsum test files by @oech3 in https://github.com/uutils/coreutils/pull/11086
Dependency Updates
- Bump wincode crates to
0.3.1by @cakebaker in https://github.com/uutils/coreutils/pull/10650 - chore(deps): update rust crate regex to v1.12.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10683
- chore(deps): update rust crate clap to v4.5.57 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10685
- chore(deps): update rust crate zip to v7.3.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10713
- chore(deps): update vmactions/freebsd-vm action to v1.3.9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/9605
- chore(deps): update rust crate jiff to v0.2.19 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10760
- chore(deps): update rust crate memchr to v2.8.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10774
- chore(deps): update rust crate libc to v0.2.181 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10844
- Revert "chore(deps): update rust crate libc to v0.2.181" by @xtqqczze in https://github.com/uutils/coreutils/pull/10875
- chore(deps): update rust crate clap to v4.5.58 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10876
- chore(deps): update rust crate clap_complete to v4.5.66 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10877
- Bump
jiff& fix clippy warning by @cakebaker in https://github.com/uutils/coreutils/pull/10881 - chore(deps): update rust crate tempfile to v3.25.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10843
- chore(deps): update rust crate libfuzzer-sys to v0.4.12 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10864
- chore(deps): update rust crate z85 to v3.0.7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10913
- chore(deps): update rust crate zip to v8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10944
- chore(deps): update rust crate indicatif to v0.18.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10936
- chore(deps): update rust crate memmap2 to v0.9.10 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10953
- chore(deps): update rust crate clap to v4.5.59 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10985
- chore(deps): update rust crate zip to v8.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/10990
- fix(deps): update rust crate keccak to v0.1.6 by @xtqqczze in https://github.com/uutils/coreutils/pull/10988
- chore(deps): update dawidd6/action-download-artifact action to v15 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11012
- chore(deps): update rust crate clap to v4.5.60 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11030
- Bump fuzzer's libc to 0.2.182 by @oech3 in https://github.com/uutils/coreutils/pull/11037
- fuzz: bump
keccakfrom0.1.5to0.1.6by @cakebaker in https://github.com/uutils/coreutils/pull/11035 - chore(deps): update rust crate rustix to 1.1.4 by @xtqqczze in https://github.com/uutils/coreutils/pull/11055
- chore(deps): update rust crate jiff to v0.2.21 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11058
- chore(deps): update rust crate tempfile to v3.26.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11087
- Bump
num-primefrom0.4.4to0.5.0by @cakebaker in https://github.com/uutils/coreutils/pull/11069 - deps: update rust crate futures-util to v0.3.32 by @xtqqczze in https://github.com/uutils/coreutils/pull/11094
- chore(deps): update dawidd6/action-download-artifact action to v16 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11121
- chore(deps): update rust crate jiff to v0.2.22 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11164
- chore(deps): update rust crate zip to v8.2.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11184
- chore(deps): update rust crate quote to v1.0.45 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11188
- chore(deps): update rust crate jiff to v0.2.23 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11189
- chore(deps): update github artifact actions (major) by @renovate[bot] in https://github.com/uutils/coreutils/pull/11132
- deps: replace ahash with foldhash by @xtqqczze in https://github.com/uutils/coreutils/pull/11187
- deny.toml: remove
signal-hookfrom skip list by @cakebaker in https://github.com/uutils/coreutils/pull/10785
Version Management
- prepare release 0.7.0 by @sylvestre in https://github.com/uutils/coreutils/pull/11128
New Contributors
- @my4ng made their first contribution in https://github.com/uutils/coreutils/pull/10673
- @tuananh made their first contribution in https://github.com/uutils/coreutils/pull/10668
- @0xMillyByte made their first contribution in https://github.com/uutils/coreutils/pull/10714
- @NatsuCamellia made their first contribution in https://github.com/uutils/coreutils/pull/10434
- @nikolalukovic made their first contribution in https://github.com/uutils/coreutils/pull/10529
- @memark made their first contribution in https://github.com/uutils/coreutils/pull/10848
- @lanceXwq made their first contribution in https://github.com/uutils/coreutils/pull/10822
- @denendaden made their first contribution in https://github.com/uutils/coreutils/pull/10711
- @hlsxx made their first contribution in https://github.com/uutils/coreutils/pull/10827
- @WhateverAWS made their first contribution in https://github.com/uutils/coreutils/pull/10912
- @vjardin made their first contribution in https://github.com/uutils/coreutils/pull/10901
- @yachi made their first contribution in https://github.com/uutils/coreutils/pull/10828
- @cuiweixie made their first contribution in https://github.com/uutils/coreutils/pull/10973
- @o1x3 made their first contribution in https://github.com/uutils/coreutils/pull/10974
- @aguimaraes made their first contribution in https://github.com/uutils/coreutils/pull/11045
- @victor-prokhorov made their first contribution in https://github.com/uutils/coreutils/pull/10934
- @RedNhight made their first contribution in https://github.com/uutils/coreutils/pull/11018
- @anihal made their first contribution in https://github.com/uutils/coreutils/pull/11112
- @aweinstock314 made their first contribution in https://github.com/uutils/coreutils/pull/11129
- @YuF-9468 made their first contribution in https://github.com/uutils/coreutils/pull/11159
- @yotam-medini made their first contribution in https://github.com/uutils/coreutils/pull/11182
- @akervald made their first contribution in https://github.com/uutils/coreutils/pull/11143
- @domysu made their first contribution in https://github.com/uutils/coreutils/pull/11206
Full Changelog: https://github.com/uutils/coreutils/compare/0.6.0...0.7.0