coreutils 0.8.0

coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
### **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:

| Result        | 0.7.0 | 0.8.0 | Change 0.7.0 to 0.8.0 | % Total 0.7.0 | % Total 0.8.0 | % Change 0.7.0 to 0.8.0 |
|---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
| 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                      |               |               |                          |

---

![GNU testsuite evolution](https://github.com/uutils/coreutils-tracking/blob/main/gnu-results.svg?raw=true)

---

### 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