### **Rust Coreutils 0.8.0 Release:**
We are excited to announce the release of **Rust Coreutils 0.8.0** — a major release featuring a **large-scale migration from `nix` to `rustix`** for lower-level syscall safety, **significant performance gains** across core utilities, **expanded WebAssembly (WASI) support** with a brand-new **[online playground](https://uutils.github.io/playground/)**, and continued hardening against edge-case panics and `/dev/full` aborts!
---
### GNU Test Suite Compatibility:
| Pass | 629 | 630 | +1 | 94.59% | 94.74% | +0.15% |
| Skip | 13 | 14 | +1 | 1.95% | 2.11% | +0.16% |
| Fail | 23 | 21 | -2 | 3.46% | 3.16% | -0.30% |
| Error | 0 | 0 | 0 | 0% | 0% | 0% |
| Total | 665 | 665 | 0 | | | |
---

---
### Highlights:
- **GNU Compatibility & Upstream Collaboration**
- **630 passing GNU tests**, with 2 fewer failures than 0.7.0
- Continued contributing tests and bug reports upstream to GNU coreutils, strengthening both projects
- Our compatibility work regularly uncovers edge cases in GNU itself, leading to fixes on both sides
- **`nix` → `rustix` Migration**
- Replaced `nix` crate with `rustix` across **cat**, **df**, **wc**, **tty**, **tsort**, **tail**, **touch**, **date**, **mkdir**, and **uucore**
- Reduced range of unsafe code in **hostname**, **logname**, **who**, and **nice**
- `uucore`: uses `rustix` for `splice()`, restricted to Linux
- **Performance Improvements**
- `uucore`: Share fluent resources between threads — **dd perf +45%**
- `uucore`: Call `rt_sigaction` once instead of 62 times — faster startup
- `ls`: Replace recursion with iterative depth-first search; remove many unnecessary allocations
- `sort`: Performance improvements across sorting paths
- `wc`: Improved `-c` performance with unextended pipe input (Linux)
- `cat`: Avoid unnecessary `pipe()` when stdout is already a pipe; don't lock stdout before `splice()`
- `dd`: Avoid zero-filling buffer at `read_and_discard`
- `tee`: Increased buffer size for large input; removed `Box` and `dyn` overhead
- `numfmt`: Protect name from argv[0] — **+3% perf**
- `pr`: Avoid `String` conversion when storing lines to print
- `true`/`false`/`echo`: Avoid `uu_app().render_version()` for smaller binary
- **WebAssembly (WASI) Support & Online Playground**
- **New: [Online Playground](https://uutils.github.io/playground/)** — try Rust Coreutils directly in your browser, powered by WebAssembly ([blog post](https://uutils.github.io/blog/2025-04-playground/))
- Added WASI support for **30+ utilities** including `ls`, `head`, `cat`, `cp`, `mv`, `sort`, `tail`, and many more
- Embedded all locales in the WASI binary
- Added WASI platform stubs for `FileInformation` and IO module in `uucore`
- Single-threaded sort path for WASI; disabled `rayon` on WASI
- **Notable Bug Fixes**
- `date`: Fixed panic on huge format widths, `%#P` case-swap, narrow width on wide fields, locale-aware localization before GNU modifier processing
- `ln`: Avoid dereferencing target with `--no-dereference`; restore backup if linking fails
- `factor`: Fixed crash on malformed input; deduplicated and optimized parsing
- `head`: Reset stale partial line state on reused buffers; fix error message for directory input
- `sort`: Fixed infinite loop on `--files0-from` read error; added locale-aware month sorting (`-M`)
- `cut`: Reject literal `''` delimiter; honor only-delimited in newline-delimiter mode
- `tr`: Reject unknown character classes; fix graph/print class mapping
- `timeout`: Return timed-out status after kill grace period
- `sync`: Fall back to full sync when `--file-system` has no operands; fix exit code on `fcntl` failure
- `expr`: Fix eager evaluation of parenthesized dead branches
- `split`: Preserve non-UTF-8 bytes in output filename generation
- `od`: Default `-t f` to double precision
- `dd`: Fix ISO-8859-1 case conversion for `conv=lcase/ucase`; catch OOM; suppress zero multiplier warning when multiplicand is zero
- `numfmt`: Preserve fractional digits with `--from-unit`; implement latest GNU changes
- `cp`: Always create dest dirs with owner write bit before fixing permissions
- `stty`: Fix incorrect ppc64el type presumption
- `cksum`: Add SHAKE128/256 length validation; bring back blake3; match GNU digest length errors in `--check` mode
- **Robustness & Security**
- Fixed `/dev/full` panics in `coreutils --help`, `libstdbuf`, `sync`, `tr`, `nice`
- Protected utility names against `argv[0]` manipulation across `*sum`, `baseNM`, `ls`/`dir`/`vdir`, `env`, `numfmt`, and more
- `coreutils`: Protect against `env -a` for security
- `env`: Disallow `__ALL__` in `--{ignore,default,block}-signal`
- `chown`: Warn when `.` is used as owner:group separator
- **Platform Support**
- NetBSD: Multiple fixes, `stdbuf` support, expanded CI coverage
- `pathchk`: Now builds for Windows
- `wc`: Cross-platform building and 32-bit support
- `stdbuf`: Fixed Cygwin `cfg` block; detect unsupported target at build time
- `uucore(fs)`: Made `display_permissions_unix` cross-platform
- `uucore`: Support realtime signals (`RTMIN`/`RTMAX`) in `signal_by_name_or_value`
- `uucore`: Permit `D` as decimal suffix modifier for GNU compatibility
- **Documentation & Manpages**
- Manpages now include **TL;DR examples**, **links to the source code**, and **open bugs** — see for example [`ls`](https://uutils.github.io/coreutils/docs-fr/utils/ls.html)
- Manpages are available in **multiple languages** including [French](https://uutils.github.io/coreutils/docs-fr/utils/mktemp.html) and [Spanish](https://uutils.github.io/coreutils/docs-es/utils/pwd.html), refreshed daily
- Added manpage linting in CI to catch formatting issues early
- TL;DR attribution and disclaimer are now translatable
- **Contributions**: This release was made possible by **13 new contributors** joining our community
---
### Call to Action:
**Try it in your browser** — [Online Playground](https://uutils.github.io/playground/) powered by WebAssembly
**Help us translate** — Contribute to [Rust Coreutils on Weblate](https://hosted.weblate.org/projects/rust-coreutils/) or [TL;DR pages](https://github.com/tldr-pages/tldr/blob/main/CONTRIBUTING.md#translations)
**Sponsor us on GitHub** to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)
## What's Changed
## cat
* cat: Drop a clone() and use clap's default value by @oech3 in https://github.com/uutils/coreutils/pull/11298
* cat: replace nix with rustix by @oech3 in https://github.com/uutils/coreutils/pull/11567
* cat: avoid pipe() if stdout is pipe, extend pipe by @oech3 in https://github.com/uutils/coreutils/pull/11551
* cat: add bench for large size for splice by @oech3 in https://github.com/uutils/coreutils/pull/11587
* cat: add WASI stub for is_unsafe_overwrite and add to feat_wasm by @sylvestre in https://github.com/uutils/coreutils/pull/11573
* cat: fallback with pipe() failure by @oech3 in https://github.com/uutils/coreutils/pull/11635
* cat: don't lock stdout before splice() by @oech3 in https://github.com/uutils/coreutils/pull/11643
* cat: simplify splice & fix comment by @oech3 in https://github.com/uutils/coreutils/pull/11627
* cat: add bench by @oech3 in https://github.com/uutils/coreutils/pull/11525
* cat: remove some unnecessary `to_owned()` calls by @cakebaker in https://github.com/uutils/coreutils/pull/11676
## chown
* chown(ref): parse_uid flattened syntax by @hlsxx in https://github.com/uutils/coreutils/pull/11351
* chown: warn when '.' is used as owner:group separator by @eyupcanakman in https://github.com/uutils/coreutils/pull/11438
## cksum
* cksum family: #[allow(clippy::unwrap_used)] by @oech3 in https://github.com/uutils/coreutils/pull/11307
* cksum: add length support for shake128 and shake256 validation by @AldanTanneo in https://github.com/uutils/coreutils/pull/11320
* cksum: Bring back blake3 algorithm by @RenjiSann in https://github.com/uutils/coreutils/pull/11316
* cksum: rework blake length validation, add tests by @RenjiSann in https://github.com/uutils/coreutils/pull/11437
* cksum: Match GNU behavior for digest length errors in --check mode by @RenjiSann in https://github.com/uutils/coreutils/pull/11499
* *sum: protect names against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11375
## coreutils
* coreutils: --help >/dev/full panics by @oech3 in https://github.com/uutils/coreutils/pull/11444
* coreutils: --list arg and no args should fail by @oech3 in https://github.com/uutils/coreutils/pull/11385
* coreutils: Protect against env -a for security by @oech3 in https://github.com/uutils/coreutils/pull/10773
* coreutils: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/11484
* yes, coreutils: backport(enable) 2 GnuTests by @oech3 in https://github.com/uutils/coreutils/pull/11480
## cp
* clippy(cp): fix collapsible_if lint by @mattsu2020 in https://github.com/uutils/coreutils/pull/11288
* fix(cp): always create dest dirs with owner write bit before fixing permissions by @baa-ableton in https://github.com/uutils/coreutils/pull/11318
* wasm: add support for cp & mv by @sylvestre in https://github.com/uutils/coreutils/pull/11572
## cut
* cut: Drop a clone() and use clap's default value by @oech3 in https://github.com/uutils/coreutils/pull/11310
* cut: improve some error messages by @cakebaker in https://github.com/uutils/coreutils/pull/11338
* cut: reject literal '' delimiter special-casing by @can1357 in https://github.com/uutils/coreutils/pull/11399
* cut: honor only-delimited in newline-delimiter mode by @can1357 in https://github.com/uutils/coreutils/pull/11394
* cut: use `?` instead of `match` by @cakebaker in https://github.com/uutils/coreutils/pull/11461
## date
* date: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11646
* date: fix "unused variable" warning by @cakebaker in https://github.com/uutils/coreutils/pull/11637
* date: fix date +%9223372036854775807c panic by @mattsu2020 in https://github.com/uutils/coreutils/pull/11046
* date: fix %#P case-swap on lowercase am/pm by @vishakha1411 in https://github.com/uutils/coreutils/pull/11671
* date: honor narrow width on wide default strftime fields by @vishakha1411 in https://github.com/uutils/coreutils/pull/11670
* date: apply locale-aware localization before GNU modifier processing by @sylvestre in https://github.com/uutils/coreutils/pull/11661
* date: add ignored tests for GNU compatibility gaps found by fuzz_date by @sylvestre in https://github.com/uutils/coreutils/pull/11665
## dd
* dd: fix ISO-8859-1 case conversion for conv=lcase/ucase by @sylvestre in https://github.com/uutils/coreutils/pull/10830
* dd: catch OOM by @oech3 in https://github.com/uutils/coreutils/pull/11562
* dd: avoid 0-filling buf at read_and_discard by @oech3 in https://github.com/uutils/coreutils/pull/11583
* dd: do not show zero multiplier warning when zero is the multiplicand by @iburaky2 in https://github.com/uutils/coreutils/pull/11673
## df
* df: replace unsafe libc sync with nix crate by @mattsu2020 in https://github.com/uutils/coreutils/pull/11279
* df: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11576
## env
* env: fix --version and protect against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11370
* env: Disallow __ALL__ in --{ignore,default,block}-signal by @aweinstock314 in https://github.com/uutils/coreutils/pull/11218
## expand
* clippy(expand): fix collapsible_if lint by @xtqqczze in https://github.com/uutils/coreutils/pull/11286
## expr
* expr: fix eager evaluation of parenthesized dead branches by @can1357 in https://github.com/uutils/coreutils/pull/11395
## factor
* factor: fix crash on malformed input by @Alonely0 in https://github.com/uutils/coreutils/pull/11190
* factor: deduplicate code, refactor & optimize parsing by @Alonely0 in https://github.com/uutils/coreutils/pull/11292
## head
* head: reset stale partial line state on reused buffers by @can1357 in https://github.com/uutils/coreutils/pull/11407
* head: fix error message when input is a directory by @aguimaraes in https://github.com/uutils/coreutils/pull/11541
* head: split head.rs by @oech3 in https://github.com/uutils/coreutils/pull/11679
* feat_wasm: add head to the WASM-compatible utilities by @sylvestre in https://github.com/uutils/coreutils/pull/11570
## install
* install: refactor conditional expression by @xtqqczze in https://github.com/uutils/coreutils/pull/11280
* install: rename `unprivileged` property by @cakebaker in https://github.com/uutils/coreutils/pull/11283
* clippy(install): fix collapsible_if lint by @xtqqczze in https://github.com/uutils/coreutils/pull/11285
* install: improve help texts by @cakebaker in https://github.com/uutils/coreutils/pull/11290
## ln
* ln: Avoid dereferencing target if --no-dereference is passed by @aweinstock314 in https://github.com/uutils/coreutils/pull/11253
* ln: Restore backup to destination if linking fails by @aweinstock314 in https://github.com/uutils/coreutils/pull/11355
* ln: simplify the code by @sylvestre in https://github.com/uutils/coreutils/pull/11390
## ls
* ls: replace recursion with depth-first search by @Alonely0 in https://github.com/uutils/coreutils/pull/11386
* ls: remove many unnecessary allocations by @Alonely0 in https://github.com/uutils/coreutils/pull/11447
* chore(ls): refactor codebase into new files by @Alonely0 in https://github.com/uutils/coreutils/pull/11429
* ls: add header to new files by @cakebaker in https://github.com/uutils/coreutils/pull/11442
* ls: Fix error message for ls file/missing-file by @oech3 in https://github.com/uutils/coreutils/pull/11333
* ls: fall back to "." metadata for ".." on WASI by @sylvestre in https://github.com/uutils/coreutils/pull/11633
* ls,dir,vdir: protect names against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11371
* simplify the ls code by @sylvestre in https://github.com/uutils/coreutils/pull/11391
## mkdir
* mkdir: replace libc and unsafe by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11647
## nice
* nice: Remove unsafe and reduce bin size by @oech3 in https://github.com/uutils/coreutils/pull/11489
## numfmt
* numfmt: protect name from argv[0], perf +3% by @oech3 in https://github.com/uutils/coreutils/pull/11379
* numfmt: move duplicate code to function by @cakebaker in https://github.com/uutils/coreutils/pull/11381
* numfmt: implement the last changes by @sylvestre in https://github.com/uutils/coreutils/pull/11411
* numfmt: preserve fractional digits when --from-unit is used without suffix by @Eshwar1440 in https://github.com/uutils/coreutils/pull/11674
* numfmt: add failing test cases by @sylvestre in https://github.com/uutils/coreutils/pull/11668
* numfmt & others: Dedup some code by @sylvestre in https://github.com/uutils/coreutils/pull/11645
## od
* od: default `-t f` to double precision by @can1357 in https://github.com/uutils/coreutils/pull/11396
## pr
* pr: don't convert to String when storing lines to print by @venoosoo in https://github.com/uutils/coreutils/pull/11327
## sort
* sort: fix infinite loop on --files0-from read error by @vitkyrka in https://github.com/uutils/coreutils/pull/11504
* sort: fix warnings about unused stuff on Redox by @cakebaker in https://github.com/uutils/coreutils/pull/11547
* Sort: improve some of the performances by @sylvestre in https://github.com/uutils/coreutils/pull/11412
* sort: add locale-aware month sorting (-M) by @sylvestre in https://github.com/uutils/coreutils/pull/11445
* sort: disable rayon on wasi by @sylvestre in https://github.com/uutils/coreutils/pull/11595
* sort: add WASI single-threaded sort path & run most of the tests by @sylvestre in https://github.com/uutils/coreutils/pull/11624
* docs(sort): fix random number generation example by @xtqqczze in https://github.com/uutils/coreutils/pull/11295
## split
* split: preserve non-UTF-8 bytes in output filename generation by @can1357 in https://github.com/uutils/coreutils/pull/11397
## stdbuf
* stdbuf: detect unsupported target at build time by @oech3 in https://github.com/uutils/coreutils/pull/11476
* stdbuf: Fix cfg block for Cygwin by @oech3 in https://github.com/uutils/coreutils/pull/11311
* stdbuf: remove clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/11545
* stdbuf: use .with_capacity for Vec storing searched paths by @oech3 in https://github.com/uutils/coreutils/pull/11546
* Fix `stdbuf` on NetBSD by @0323pin in https://github.com/uutils/coreutils/pull/11428
* libstdbuf: remove eprintln! causing 2>/dev/full abort by @oech3 in https://github.com/uutils/coreutils/pull/11213
* uu_stdbuf_libstdbuf: add LICENSE by @michel-slm in https://github.com/uutils/coreutils/pull/11417
## stty
* stty: Fix incorrect ppc64el type presumption by @BAMF0 in https://github.com/uutils/coreutils/pull/11284
## sync
* sync: fix exit code when fcntl failed & 2>/dev/full abort by @oech3 in https://github.com/uutils/coreutils/pull/11508
* sync: fall back to full sync when --file-system has no operands by @can1357 in https://github.com/uutils/coreutils/pull/11393
## tail
* tail: increase retry delay and sleep interval for flaky test by @mattsu2020 in https://github.com/uutils/coreutils/pull/11278
* tail: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11606
* tail: add WASI support by disabling notify and pid features by @sylvestre in https://github.com/uutils/coreutils/pull/11569
## tee
* tee: remove Box and dyn by @oech3 in https://github.com/uutils/coreutils/pull/11578
* tee: increase buf size for large input by @oech3 in https://github.com/uutils/coreutils/pull/11441
* tee: fix < . message and strip errno by @oech3 in https://github.com/uutils/coreutils/pull/11483
* tee: simplify by clap by @oech3 in https://github.com/uutils/coreutils/pull/11582
* tee: reduce if block by @oech3 in https://github.com/uutils/coreutils/pull/11472
* tee: split cli part of tee.rs by @oech3 in https://github.com/uutils/coreutils/pull/11640
## timeout
* timeout: return timed-out status after kill grace period by @can1357 in https://github.com/uutils/coreutils/pull/11392
* feat(timeout): add benchmarking support with divan by @mattsu2020 in https://github.com/uutils/coreutils/pull/9733
## touch
* touch: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11648
## tr
* tr: reject unknown character classes during sequence parsing by @can1357 in https://github.com/uutils/coreutils/pull/11398
* tr: fix graph/print character class mapping by @can1357 in https://github.com/uutils/coreutils/pull/11405
## true/false
* true, false, echo: avoid uu_app().render_version() for smaller binary by @oech3 in https://github.com/uutils/coreutils/pull/11362
## tsort
* tsort: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11598
## tty
* tty: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11589
## wc
* wc: replace File::from_raw_fd with nix::sys::stat by @mattsu2020 in https://github.com/uutils/coreutils/pull/11248
* wc: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11575
* wc: improve wc -c perf with unextended pipe input (Linux only) by @oech3 in https://github.com/uutils/coreutils/pull/11591
* wc: support cross-platform building and 32-bit by @YumeYuka in https://github.com/uutils/coreutils/pull/11452
* wc: add bench for small file by @oech3 in https://github.com/uutils/coreutils/pull/11526
* wc: drop #[allow(clippy::question_mark)] by @oech3 in https://github.com/uutils/coreutils/pull/11638
## yes
* yes: Refactor by clap's default value by @oech3 in https://github.com/uutils/coreutils/pull/11296
* yes: dedup some logic by @oech3 in https://github.com/uutils/coreutils/pull/11536
* yes: drop unused feat deps by @oech3 in https://github.com/uutils/coreutils/pull/11518
## uucore
* uucore: tr, nice -n . 2>/dev/full does not abort by @oech3 in https://github.com/uutils/coreutils/pull/10762
* uucore: share a fluent resource between threads - dd perf + 45% by @oech3 in https://github.com/uutils/coreutils/pull/11220
* uucore: Permit 'D' as a decimal suffix modifier in size parsing for GNU compatibility by @aweinstock314 in https://github.com/uutils/coreutils/pull/11354
* uucore: use rustix'splice & restrict to Linux by @oech3 in https://github.com/uutils/coreutils/pull/11566
* uucore: add WASI support for FileInformation and io module by @sylvestre in https://github.com/uutils/coreutils/pull/11568
* uucore: pipes.rs replace != with > by @oech3 in https://github.com/uutils/coreutils/pull/11629
* uucore: add a function returning /dev/null to use splice() for wc,dd,tail by @oech3 in https://github.com/uutils/coreutils/pull/11601
* uucore: add missing feature of rustix by @oech3 in https://github.com/uutils/coreutils/pull/11632
* uucore: support realtime signals (RTMIN/RTMAX) in signal_by_name_or_value by @kevinburkesegment in https://github.com/uutils/coreutils/pull/11425
* uucore(fs): make display_permissions_unix cross-platform by @kaladron in https://github.com/uutils/coreutils/pull/11538
* uucore: drop an unused function by @oech3 in https://github.com/uutils/coreutils/pull/11460
* perf(uucore): call rt_sigaction once not 62 times by @danielzgtg in https://github.com/uutils/coreutils/pull/11350
* utmpx.rs: Remove duplicated const by @oech3 in https://github.com/uutils/coreutils/pull/11323
## uudoc
* uudoc: make tldr attribution and disclaimer translatable by @sylvestre in https://github.com/uutils/coreutils/pull/11450
* uudoc: drop legacy FA4 `fa` class from platform icons by @sylvestre in https://github.com/uutils/coreutils/pull/11641
* Improve the manpages & lint them in github by @sylvestre in https://github.com/uutils/coreutils/pull/11339
## CI & Build
* CICD.yml: split jobs for make by @oech3 in https://github.com/uutils/coreutils/pull/11269
* make.yml: Replace wrong *.yml ref by @oech3 in https://github.com/uutils/coreutils/pull/11281
* make.yml: Switch to stable from MSRV by @oech3 in https://github.com/uutils/coreutils/pull/11273
* CICD: Partial check for NetBSD by @oech3 in https://github.com/uutils/coreutils/pull/11334
* CICD: Check more NetBSD progs by @oech3 in https://github.com/uutils/coreutils/pull/11408
* CICD.yml: Bump cross for NetBSD by @oech3 in https://github.com/uutils/coreutils/pull/11496
* l10n.yml: Simplify by @oech3 in https://github.com/uutils/coreutils/pull/11335
* l10n.yml: drop cargo build covered by cargo {test,run} by @oech3 in https://github.com/uutils/coreutils/pull/11349
* dedup env: CARGO_INCREMENTAL: 0 by @oech3 in https://github.com/uutils/coreutils/pull/11360
* run-gnu-tests-smack-ci.sh: copy kernel from Ubuntu runner by @oech3 in https://github.com/uutils/coreutils/pull/11376
* run-gnu-tests-smack-ci.sh: Use alpine busybox by @oech3 in https://github.com/uutils/coreutils/pull/11431
* delay=1000 at test_tail::test_follow_name_multiple at non-linux by @oech3 in https://github.com/uutils/coreutils/pull/11257
* CI: add GNU tests/rm/isatty to intermittent by @Alonely0 in https://github.com/uutils/coreutils/pull/11486
* GNUmakefile: Do not depend on system tr for Gentoo by @oech3 in https://github.com/uutils/coreutils/pull/11345
* GNUmakefile: Fix LN for cygwin by @oech3 in https://github.com/uutils/coreutils/pull/11440
* pathchk: build for Windows by @oech3 in https://github.com/uutils/coreutils/pull/11495
* github action: Move the clippy management in python + run it on wasm code too by @sylvestre in https://github.com/uutils/coreutils/pull/11596
* tests: ensure getlimits is on PATH for reused GNU builds by @sylvestre in https://github.com/uutils/coreutils/pull/11561
* pre-commit: add Cargo.lock sync check by @sylvestre in https://github.com/uutils/coreutils/pull/11540
* pre-commit: exclude tests/fixtures from all hooks by @sylvestre in https://github.com/uutils/coreutils/pull/11558
* pre-commit: update cargo-lock-check to suggest changes by @xtqqczze in https://github.com/uutils/coreutils/pull/11622
* adjust the publish script to ship src/uu/checksum_common by @sylvestre in https://github.com/uutils/coreutils/pull/11263
* NetBSD fixes by @0323pin in https://github.com/uutils/coreutils/pull/11388
* Allow `feat_os_unix` on NetBSD by @0323pin in https://github.com/uutils/coreutils/pull/11470
* wasm: make ls pass and prepare more work by @sylvestre in https://github.com/uutils/coreutils/pull/11563
* wasm: add 21 more utilities to feat_wasm and add WASI platform stubs by @sylvestre in https://github.com/uutils/coreutils/pull/11574
* wasi: embedded all the locales + add the support in the binary by @sylvestre in https://github.com/uutils/coreutils/pull/11631
## Documentation
* docs(sort): fix random number generation example by @xtqqczze in https://github.com/uutils/coreutils/pull/11295
* docs(performance): Use gnuls where ls is uutils by @danielzgtg in https://github.com/uutils/coreutils/pull/11342
* ls,pr: wrap angle-bracket placeholders in backticks to fix mdbook HTML warnings by @sylvestre in https://github.com/uutils/coreutils/pull/11520
* CONTRIBUTING.md: drop outdated hint, add policies and links by @oech3 in https://github.com/uutils/coreutils/pull/11433
* arch, uname, Cargo.toml: update outdated info by @oech3 in https://github.com/uutils/coreutils/pull/11556
* fr-FR: fix anglicisms (supporté→pris en charge, drapeau→option, removed→supprimé) by @sylvestre in https://github.com/uutils/coreutils/pull/11651
* Remove useless translations by @sylvestre in https://github.com/uutils/coreutils/pull/11652
## Code Quality & Cleanup
* use var_os in a few places by @xtqqczze in https://github.com/uutils/coreutils/pull/11242
* refactor: replace manual last()+pop() patterns with Vec::pop_if by @mattsu2020 in https://github.com/uutils/coreutils/pull/11272
* Cargo.toml: dedup feat_require_unix_hostid dep by @oech3 in https://github.com/uutils/coreutils/pull/11347
* Remove duplicated features by @oech3 in https://github.com/uutils/coreutils/pull/11510
* hostid: reduce lines by @oech3 in https://github.com/uutils/coreutils/pull/11502
* logname: reduce range of unsafe block by @oech3 in https://github.com/uutils/coreutils/pull/11506
* hostname: reduce range of unsafe by @oech3 in https://github.com/uutils/coreutils/pull/11515
* who: reduce range of unsafe by @oech3 in https://github.com/uutils/coreutils/pull/11521
* nohup: #[allow(clippy::unwrap_used, reason = ...)] by @oech3 in https://github.com/uutils/coreutils/pull/11361
* nohup: use LazyLock for FAILURE_CODE by @xtqqczze in https://github.com/uutils/coreutils/pull/11524
* refactor(base32): use filter_map by @xtqqczze in https://github.com/uutils/coreutils/pull/11463
* baseNM: protect names against argv[0] by @oech3 in https://github.com/uutils/coreutils/pull/11373
* protect names against binary name by @oech3 in https://github.com/uutils/coreutils/pull/11378
* fix(deps): refactor icu_ package configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/11374
* fix(deps): refactor crc-fast package configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/11372
* gate uucore::pipes::pipe to test by @oech3 in https://github.com/uutils/coreutils/pull/11649
* uutests: add LICENSE by @michel-slm in https://github.com/uutils/coreutils/pull/11356
* uu_stdbuf_libstdbuf: add LICENSE by @michel-slm in https://github.com/uutils/coreutils/pull/11417
## Version Management
* Revert "Cargo.toml: Avoid huge diff generation at version bump" by @sylvestre in https://github.com/uutils/coreutils/pull/11259
* prepare release 0.8.0 by @sylvestre in https://github.com/uutils/coreutils/pull/11449
## Dependency Updates
* chore(deps): update actions/upload-artifact action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11275
* chore(deps): update dawidd6/action-download-artifact action to v16 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11277
* chore(deps): update rust crate tempfile to v3.27.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11289
* chore(deps): update reactivecircus/android-emulator-runner action to v2.36.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11293
* chore(deps): update rand and related crates to version 0.10 by @xtqqczze in https://github.com/uutils/coreutils/pull/11172
* chore(deps): update dawidd6/action-download-artifact action to v17 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11300
* chore(deps): update rust crate nix to 0.31.2 by @xtqqczze in https://github.com/uutils/coreutils/pull/11301
* chore(deps): update rust crate bitflags to 2.11.0 by @xtqqczze in https://github.com/uutils/coreutils/pull/11303
* chore(deps): update rust crate getrandom to 0.4.2 by @xtqqczze in https://github.com/uutils/coreutils/pull/11304
* chore(deps): update rust crate clap to v4.6.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11305
* chore(deps): update rust crate clap_complete to v4.6.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11306
* chore(deps): update rust crate clap_mangen to v0.2.33 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11308
* chore(deps): update rust crate console to v0.16.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11319
* chore(deps): update dawidd6/action-download-artifact action to v18 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11322
* chore(deps): update reactivecircus/android-emulator-runner action to v2.37.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11324
* chore(deps): update rust crate console to v0.16.3 by @xtqqczze in https://github.com/uutils/coreutils/pull/11331
* chore(deps): update rust crate pretty_assertions to v1.4.1 by @xtqqczze in https://github.com/uutils/coreutils/pull/11332
* chore(deps): update nick-fields/retry action to v4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11426
* chore(deps): update rust crate zip to v8.3.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11418
* chore(deps): update rust crate itoa to v1.0.18 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11424
* chore(deps): update dawidd6/action-download-artifact action to v19 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11382
* chore(deps): update rust crate zip to v8.3.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11446
* chore(deps): update endbug/add-and-commit action to v10 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11459
* chore(deps): update rust crate zip to v8.4.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11462
* chore(deps): update rust crate terminal_size to v0.4.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11468
* chore(deps): update davidanson/markdownlint-cli2-action action to v23 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11501
* chore(deps): update codecov/codecov-action action to v6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11509
* chore(deps): update rust crate clap_mangen to 0.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11527
* chore(deps): update rust crate uutils_term_grid to 0.8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11267
* chore(deps): update rust crate rustc-hash to v2.1.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11533
* chore(deps): update rust crate ctor to 0.8.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11528
* Bump `sm3` & add crates to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/11535
* Bump icu_* crates from `2.1.1` to `2.2.0` & fix deprecation warnings by @cakebaker in https://github.com/uutils/coreutils/pull/11590
* chore(deps): update rust crate blake3 to v1.8.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11550
* chore(deps): update rust crate platform-info to v2.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11552
* chore(deps): update rust crate zip to v8.5.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11586
* chore(deps): update rust crate icu_provider to v2.2.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11585
* fix(deps): update rust crate similar to v3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11588
* chore(deps): update rust crate icu_calendar to v2.2.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11600
* chore(deps): update dawidd6/action-download-artifact action to v20 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11608
* chore(deps): update rust crate libredox to 0.1.15 by @xtqqczze in https://github.com/uutils/coreutils/pull/11625
## New Contributors
* @BAMF0 made their first contribution in https://github.com/uutils/coreutils/pull/11284
* @AldanTanneo made their first contribution in https://github.com/uutils/coreutils/pull/11320
* @danielzgtg made their first contribution in https://github.com/uutils/coreutils/pull/11342
* @venoosoo made their first contribution in https://github.com/uutils/coreutils/pull/11327
* @baa-ableton made their first contribution in https://github.com/uutils/coreutils/pull/11318
* @can1357 made their first contribution in https://github.com/uutils/coreutils/pull/11399
* @vitkyrka made their first contribution in https://github.com/uutils/coreutils/pull/11504
* @kaladron made their first contribution in https://github.com/uutils/coreutils/pull/11538
* @eyupcanakman made their first contribution in https://github.com/uutils/coreutils/pull/11438
* @kevinburkesegment made their first contribution in https://github.com/uutils/coreutils/pull/11425
* @YumeYuka made their first contribution in https://github.com/uutils/coreutils/pull/11452
* @vishakha1411 made their first contribution in https://github.com/uutils/coreutils/pull/11671
* @Eshwar1440 made their first contribution in https://github.com/uutils/coreutils/pull/11674
**Full Changelog**: https://github.com/uutils/coreutils/compare/0.7.0...0.8.0