coreutils 0.10.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
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
### **Rust Coreutils 0.9.0 Release:**

We are excited to announce the release of **Rust Coreutils 0.9.0** - a release focused on **safety and security**. This cycle was shaped by a third-party security audit, driving extensive **TOCTOU hardening** and a sustained, project-wide effort to **shrink the amount of `unsafe` code** by removing it outright and migrating low-level syscalls from `nix`/`libc` to `rustix`. On top of that, we landed major **zero-copy I/O performance** work (`splice`/`tee`/`pipe`), broadened **WebAssembly, Cygwin and Windows** support, and continued contributing tests and bug reports upstream to GNU coreutils.

---

### GNU Test Suite Compatibility:

| Result        | 0.8.0 | 0.9.0 | Change 0.8.0 to 0.9.0 | % Total 0.8.0 | % Total 0.9.0 | % Change 0.8.0 to 0.9.0 |
|---------------|-------|-------|------------------------|---------------|---------------|--------------------------|
| Pass          | 630   | 625   | -5                     | 94.74%        | 90.58%        | -4.16%                   |
| Skip          | 14    | 8     | -6                     | 2.11%         | 1.16%         | -0.95%                   |
| Fail          | 21    | 56    | +35                    | 3.16%         | 8.12%         | +4.96%                   |
| Error         | 0     | 1     | +1                     | 0%            | 0.14%         | +0.14%                   |
| Total         | 665   | 690   | +25 (new tests)        |               |               |                          |

> **Note:** The rise in failing tests is due to the upstream GNU test suite being **extended**, not to regressions on our side. We updated our GNU reference from 9.10 to 9.11 (PR #11922), which added **25 new tests** (665 → 690). Many of these newly-introduced tests are not yet passing, which accounts for the jump from 21 to 56 failures; no previously-passing functionality regressed, and work is ongoing to address the new tests.

---

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

---

### Highlights:

- **Security Hardening (Zellic audit)**
  - A third-party security audit by [Zellic](https://github.com/Zellic/publications/blob/master/uutils%20coreutils%20-%20Zellic%20Audit%20Report.pdf) reviewed the codebase; the findings - widely reported as [44 CVEs](https://www.reddit.com/r/rust/comments/1st3tl0/44cves_found_in_rust_coreutils_audit/) (see also the [Ubuntu update](https://discourse.ubuntu.com/t/an-update-on-rust-coreutils/80773) and the corrode write-up [*Bugs Rust won't catch*](https://corrode.dev/blog/bugs-rust-wont-catch/)) - were concentrated in TOCTOU races and filesystem edge cases that Rust's type system does not prevent
  - It's worth noting that many of these CVEs are not memory-safety issues but **differences in behavior from GNU coreutils** that the audit identified; aligning our semantics with GNU resolves them
  - This release closes many of them: a new TOCTOU-resistant `uucore::safe_copy` module; TOCTOU fixes in `cp`, `mv`, and `chmod` recursive traversal; `rm` dot/dotdot path-parsing protection; `nohup.out` now created with mode `0600`; and `chroot` now resolves all ids before chrooting

- **Reducing `unsafe` & migrating to `rustix`**
  - A sustained, project-wide push to shrink the `unsafe` surface: dozens of `unsafe` removals across utilities, tests, fuzz targets and `uucore` (`get_groups`, `make_fifo`, `build.rs`, and more)
  - Migration from `nix`/`libc` to `rustix` across `id`, `tr`, `timeout`, `sort`, `wc`, `tail`, `cp`, `who`, `factor`, and core process/IO paths

- **Performance**
  - `splice()`/`tee()`/`pipe()` fast paths landed across `cat`, `wc`, `head`, `tail`, `yes`, `cp`, `tee`, and `unexpand` (e.g. `unexpand` +7.5%, faster `cp` from a pipe on Linux, `tee` via raw syscalls, `yes` using the `tee` syscall)
  - Consolidated in a reworked `uucore::pipes` / `buf_copy`

- **GNU Compatibility & Upstream Collaboration**
  - Reference bumped to **GNU 9.11**, which **extended the suite with 25 new tests** (the reason the failure count went up - see the note above; it is not a regression)
  - We continue to **contribute tests and bug reports upstream to GNU coreutils**, and our compatibility work keeps surfacing edge cases on both sides
  - New fixes across `numfmt`, `date`, `tr`, `cksum`, `factor`, `head`, `stat`, and `sort`

- **`numfmt` Overhaul**
  - Precision handling, rejection of scientific notation, `LC_NUMERIC` decimal separator, zero-padding for negative numbers, IEC precision cap, large `%f` values, `--to=auto` exit code, and multi-byte `--suffix` width accounting

- **`ls` Improvements**
  - `ls -lF` symlink target indicators, link-count column no longer inflated per-ACL-file, version-sorting and recursive-mode fixes, independent permissions-column width
  - Refactor letting crate users (e.g. nushell) call `ls` without writing everything to stdout

- **Cross-platform Reach**
  - WASI/wasm support for `ln`, `dd`, `mktemp`, and `tty.wasm`; Cygwin CI and builds (`date`, `stdbuf`); Windows `tty` (incl. msys2 paths); OpenBSD triage improvements

- **Internationalization**
  - `numfmt` and `du` now honor `LC_NUMERIC` for the decimal separator

- **Contributions**: This release was made possible by **30 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/)
**Sponsor us on GitHub** to accelerate development: [github.com/sponsors/uutils](https://github.com/sponsors/uutils)

## What's Changed

## cat
* cat: avoid unnecessary allocation by @oech3 in https://github.com/uutils/coreutils/pull/11675
* cat: do not splice() on FUSE by @oech3 in https://github.com/uutils/coreutils/pull/11723
* cat: replace copy_exact() with write_all by @oech3 in https://github.com/uutils/coreutils/pull/11800
* cat: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11884
* cat: call pipe() once with multiple input by @oech3 in https://github.com/uutils/coreutils/pull/11699
* cat: avoid unnecessary alloc on Linux by @oech3 in https://github.com/uutils/coreutils/pull/11906
* cat: remove unsafe from test code by @oech3 in https://github.com/uutils/coreutils/pull/12027
* cat: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/12178
* cat: remove line buffering by @oech3 in https://github.com/uutils/coreutils/pull/12190
* cat: dedup print_unbuffered by @oech3 in https://github.com/uutils/coreutils/pull/12214
* cat: remove splice.rs by @oech3 in https://github.com/uutils/coreutils/pull/12404

## chroot
* chroot: start removing unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12053

## cksum
* cksum: fix parsing error with tagged cheksum files by @frenchua in https://github.com/uutils/coreutils/pull/11704
* cksum: get rid of `print!` and `println!` to avoid panicking on write errors by @RenjiSann in https://github.com/uutils/coreutils/pull/12099
* cksum: Fix --check filename escaping for 9.11 by @RenjiSann in https://github.com/uutils/coreutils/pull/12156
* cksum: Introduce HashLength newtype to avoid byte/bit misuse by @RenjiSann in https://github.com/uutils/coreutils/pull/12235

## coreutils
* coreutils: --help args is same with --help by @oech3 in https://github.com/uutils/coreutils/pull/11367
* coreutils: fix panic on linux < 6.4 when /proc is not mounted by @oech3 in https://github.com/uutils/coreutils/pull/12104

## cp
* cp: improve throughput with pipe input (Linux only) by @oech3 in https://github.com/uutils/coreutils/pull/11798
* cp: fix fail-perm GNU test adaptation by @karanabe in https://github.com/uutils/coreutils/pull/12119
* chore(cp): : move raw libc calls to rustix by @Alonely0 in https://github.com/uutils/coreutils/pull/12112

## date
* date: replace regex with hand-written format spec parser by @sylvestre in https://github.com/uutils/coreutils/pull/11758
* date: use cfg unix by @oech3 in https://github.com/uutils/coreutils/pull/11952
* date: width prefix in %N format specifier is ignored ( %3N, %6N always output full 9 nanosecond digits) #12001 by @Devel08 in https://github.com/uutils/coreutils/pull/12010
* date: fix build for cygwin by @oech3 in https://github.com/uutils/coreutils/pull/12309
* date: re-zone trailing TZ abbreviation input to local timezone by @0xSoftBoi in https://github.com/uutils/coreutils/pull/12327

## dd
* dd: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11885
* dd: exit when bs/ibs/obs/cbs isn't positive by @iburaky2 in https://github.com/uutils/coreutils/pull/11630
* dd: support wasm32-wasip1 by @pocopepe in https://github.com/uutils/coreutils/pull/12258
* dd: fix OOM panic with skip=1 by @oech3 in https://github.com/uutils/coreutils/pull/12399

## df
* df: get rid of unnecessary clone calls by @fogti in https://github.com/uutils/coreutils/pull/12073

## dirname
* dirname: get rid of needless `Cow` by @ChrisDenton in https://github.com/uutils/coreutils/pull/11960

## du
* du: fix error from `needless_borrow` lint on FreeBSD by @cakebaker in https://github.com/uutils/coreutils/pull/11791
* du: remove unnecessary implementation of `code()` by @cakebaker in https://github.com/uutils/coreutils/pull/11803
* du: make du -a -s error by @oech3 in https://github.com/uutils/coreutils/pull/11917
* du: Allow command-line argument that appears more than once by @ajanicij in https://github.com/uutils/coreutils/pull/11897
* refactor(du): simplify error handling by @xtqqczze in https://github.com/uutils/coreutils/pull/11957
* du: propagate errors from --exclude-from instead of panicking by @rossilor95 in https://github.com/uutils/coreutils/pull/11996
* du: honor LC_NUMERIC for decimal separator by @eyupcanakman in https://github.com/uutils/coreutils/pull/12357

## echo
* echo: add benchmark by @oech3 in https://github.com/uutils/coreutils/pull/12091

## env
* tests(env): increase signal delivery delay to fix flaky macOS CI by @sylvestre in https://github.com/uutils/coreutils/pull/11829

## expr
* expr: avoid panic on regex retry-limit by @eyupcanakman in https://github.com/uutils/coreutils/pull/11833

## factor
* factor: emit GNU 9.11 'is not a valid positive integer' for stdin input by @sylvestre in https://github.com/uutils/coreutils/pull/12137
* factor: remove unsafe str::from_utf8_unchecked by @oech3 in https://github.com/uutils/coreutils/pull/12142

## fmt
* fmt: remove unwrap() by @oech3 in https://github.com/uutils/coreutils/pull/11810

## head
* head: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11883
* refactor(head): rename read functions to print for clarity by @xtqqczze in https://github.com/uutils/coreutils/pull/11988
* head: remove print(ln) macros by @oech3 in https://github.com/uutils/coreutils/pull/11974
* head: catch I/O error with -c 1 by @oech3 in https://github.com/uutils/coreutils/pull/12030
* head: strip os error suffix from stdout write error message by @sylvestre in https://github.com/uutils/coreutils/pull/12121
* head: fix -c0 and -n0 on directories to match GNU behavior by @sylvestre in https://github.com/uutils/coreutils/pull/12217
* head/tail: use OPTION rather than FLAG by @fnadeau in https://github.com/uutils/coreutils/pull/12301

## id
* fix(id): refine feature checks for SELinux and SMACK support by @xtqqczze in https://github.com/uutils/coreutils/pull/12047
* id: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12164

## install
* fix(install): follow symlink components in destination path with -D by @abendrothj in https://github.com/uutils/coreutils/pull/11505
* install: update comments and tests after symlink follow behavior change by @Ecordonnier in https://github.com/uutils/coreutils/pull/12475

## join
* join: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11901
* join: use `show_error` instead of `eprintln` by @cakebaker in https://github.com/uutils/coreutils/pull/11932

## ln
* ln: Improve to LnError and make public fns for nushell by @dmatos2012 in https://github.com/uutils/coreutils/pull/12009
* ln: add WASI support via symlink_path by @DePasqualeOrg in https://github.com/uutils/coreutils/pull/11713

## logname
* fix(logname): return error exit code when there is an error by @rodrigost23 in https://github.com/uutils/coreutils/pull/9313

## ls
* ls: drop #[allow(clippy::needless_bool)] by @oech3 in https://github.com/uutils/coreutils/pull/11739
* ls: fix link-count column inflating per ACL file by @sylvestre in https://github.com/uutils/coreutils/pull/11781
* refactor `uu_ls` so that crate users can call the `ls` without having to print everything to stdout by @fdncred in https://github.com/uutils/coreutils/pull/9851
* ls: restore WASI ".." metadata fallback in collect_directory_entries by @sylvestre in https://github.com/uutils/coreutils/pull/11930
* ls: use cfg unix by @oech3 in https://github.com/uutils/coreutils/pull/11953
* ls: fix comparisons in version sorting and recursive mode by @Alonely0 in https://github.com/uutils/coreutils/pull/12108
* ls: hide `paths` argument by @cakebaker in https://github.com/uutils/coreutils/pull/12113
* fix(ls): respect sorting when grouping directories; disambiguate size sorting properly by @Alonely0 in https://github.com/uutils/coreutils/pull/12109
* ls: use `lines()` instead of `split('\n')` in test by @cakebaker in https://github.com/uutils/coreutils/pull/12154
* ls: track permissions column width independently by @sylvestre in https://github.com/uutils/coreutils/pull/12411
* ls: `ls -lF` symlink target indicators by @joknarf in https://github.com/uutils/coreutils/pull/11554
* ls: simplify symlink target indicator logic by @sylvestre in https://github.com/uutils/coreutils/pull/12508

## md5sum
* md5sum: remove some `stderr_is("")` in the tests by @cakebaker in https://github.com/uutils/coreutils/pull/12168

## mkdir
* mkdir: acl and permission inheritance with -p by @j5awry in https://github.com/uutils/coreutils/pull/11931
* mkdir: simplify umask shaping and add regression tests by @sylvestre in https://github.com/uutils/coreutils/pull/12467

## mknod
* mknod: avoid 2>/dev/full SIGABRT by @oech3 in https://github.com/uutils/coreutils/pull/12059

## mktemp
* mktemp: build for wasip1 by @oech3 in https://github.com/uutils/coreutils/pull/12319
* mktemp: fix hidden file creation with dot prefix by @gabrielhnf in https://github.com/uutils/coreutils/pull/12311
* mktemp: ensure that "-q XX" shows error msg by @cakebaker in https://github.com/uutils/coreutils/pull/12492

## more
* refactor(more): avoid Box<dyn Write> by @xtqqczze in https://github.com/uutils/coreutils/pull/12090
* more: replace InputType enum with Input struct; cache file_size by @aaron-ang in https://github.com/uutils/coreutils/pull/12225
* more: gate tty-only writes; extract clear_line/highlight_text by @aaron-ang in https://github.com/uutils/coreutils/pull/12224
* more: replace nix::unistd with std::fs by @xtqqczze in https://github.com/uutils/coreutils/pull/12268

## mv
* mv: preserve ownership (uid/gid) on cross-device moves by @sylvestre in https://github.com/uutils/coreutils/pull/11706
* mv: merge two "unix" blocks by @cakebaker in https://github.com/uutils/coreutils/pull/11820
* mv: dedup libc by @oech3 in https://github.com/uutils/coreutils/pull/12242

## nl
* nl: continue if a file can't be opened by @cakebaker in https://github.com/uutils/coreutils/pull/11983

## nohup
* nohup: simplify cfg & use compile_error! by @oech3 in https://github.com/uutils/coreutils/pull/11912
* nohup: reduce unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12111
* nohup: remove unsafe stub by @oech3 in https://github.com/uutils/coreutils/pull/12125
* nohup: refactor `find_stdout` by @cakebaker in https://github.com/uutils/coreutils/pull/12146

## nproc
* nproc: Reject quota with some schedulers by @oech3 in https://github.com/uutils/coreutils/pull/11173

## numfmt
* numfmt: apply prefix after scaling for --to-unit by @BipulLamsal in https://github.com/uutils/coreutils/pull/11684
* numfmt: fix zero-padding placement for negative numbers by @Sim-hu in https://github.com/uutils/coreutils/pull/11694
* numfmt:fix issue #11653 & correct test cases by @THEMIScale in https://github.com/uutils/coreutils/pull/11695
* fix(numfmt):fix precision loss for large numbers in #11654 by @THEMIScale in https://github.com/uutils/coreutils/pull/11716
* numfmt: precision is ignored #11667 by @Devel08 in https://github.com/uutils/coreutils/pull/11683
* numfmt: fix --to=auto to return with exitcode=1 by @BipulLamsal in https://github.com/uutils/coreutils/pull/11701
* numfmt: honor LC_NUMERIC for decimal separator by @pocopepe in https://github.com/uutils/coreutils/pull/11941
* numfmt: fix #11935 --invalid=warn/ignore/fail ignores mode when rejecting scientific notation by @Devel08 in https://github.com/uutils/coreutils/pull/11945
* numfmt: cap IEC precision at 3 decimals by @pocopepe in https://github.com/uutils/coreutils/pull/11959
* numfmt: --format width accounting diverges from GNU for multi-byte --suffix #11937 fix by @Devel08 in https://github.com/uutils/coreutils/pull/11992
* numfmt: fix rounding for small scaled values by @hayato0909 in https://github.com/uutils/coreutils/pull/12032
* numfmt: reject %f values too large to format exactly by @pocopepe in https://github.com/uutils/coreutils/pull/12012

## od
* od: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11900
* od: hex byte offset case fix by @max-amb in https://github.com/uutils/coreutils/pull/12175
* od: remove unsafe, GNU stdin compat on wasi by @oech3 in https://github.com/uutils/coreutils/pull/12205
* od: generalize RawReader by @oech3 in https://github.com/uutils/coreutils/pull/12220

## paste
* paste: remove unsafe from test code by @oech3 in https://github.com/uutils/coreutils/pull/12028

## pathchk
* pathchk: fix name by @oech3 in https://github.com/uutils/coreutils/pull/11689

## pinky
* refactor(pinky): improve output handling by @xtqqczze in https://github.com/uutils/coreutils/pull/12002

## pr
* pr: exit with code 1 if --column argument is zero by @Devel08 in https://github.com/uutils/coreutils/pull/11750

## realpath
* realpath: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11895

## rm
* rm: fix inaccessible GNU test adaptation by @karanabe in https://github.com/uutils/coreutils/pull/12127

## rmdir
* rmdir: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11896

## shred
* shred: fix --remove=unlink with relative paths by @gabrielhnf in https://github.com/uutils/coreutils/pull/12516

## sort
* fix(sort): always install SIGINT handler to ensure temp dir cleanup by @mattsu2020 in https://github.com/uutils/coreutils/pull/11889
* fix(sort): explicitly clean up temp directory in TmpDirWrapper::Drop by @mattsu2020 in https://github.com/uutils/coreutils/pull/11888
* Add sort_bench_merge benchmark for sort -m (merge) performance by @nonontb in https://github.com/uutils/coreutils/pull/12022
* sort: Fix inconsistent sort orderg under i18n-collator with equal sorting keys. by @ksgk1 in https://github.com/uutils/coreutils/pull/12013
* sort: add benchmark for locale UTF-8 sorting by @sylvestre in https://github.com/uutils/coreutils/pull/12185
* sort: replace nix feature resource with rustix by @xtqqczze in https://github.com/uutils/coreutils/pull/12275
* sort: remove nix from dep by @oech3 in https://github.com/uutils/coreutils/pull/12378
* fix(sort): reject leading '+' in numeric (-n) sort by @leno23 in https://github.com/uutils/coreutils/pull/12350
* sort: fix incorrect sort ordering/output corruption with long line inputs + add a test by @karlicoss in https://github.com/uutils/coreutils/pull/12471

## split
* split: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11891

## stat
* stat: warn once when QUOTING_STYLE env has an unknown value by @sylvestre in https://github.com/uutils/coreutils/pull/12136
* stat: fix %N quoting of filenames containing control characters by @fullwoodenshovel in https://github.com/uutils/coreutils/pull/12330

## stdbuf
* stdbuf: support cross-platform building by @YumeYuka in https://github.com/uutils/coreutils/pull/11609
* stdbuf: build on Windows (depending on cygwin dll) by @oech3 in https://github.com/uutils/coreutils/pull/12329

## stty
* stty: add two missing baud rates by @cakebaker in https://github.com/uutils/coreutils/pull/11865
* stty: add support for tabs/-tabs combination settings by @sylvestre in https://github.com/uutils/coreutils/pull/11735

## sum
* feat(sum): use larger buffer in bsd_sum and sysv_sum by @xtqqczze in https://github.com/uutils/coreutils/pull/12391

## sync
* refactor(sync): DRY do_sync_with function by @hlsxx in https://github.com/uutils/coreutils/pull/12033
* refactor(sync): remove unnecessary files move by @hlsxx in https://github.com/uutils/coreutils/pull/12485

## tail
* tail: replace unsafe libc::kill by rustix by @mattsu2020 in https://github.com/uutils/coreutils/pull/11725
* tail: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11890
* tail: fix panic on write error in bounded_tail by @rossilor95 in https://github.com/uutils/coreutils/pull/11886
* tail: improve throughput for -c +0 by splice() by @oech3 in https://github.com/uutils/coreutils/pull/11962
* tail: remove ?Sized by @oech3 in https://github.com/uutils/coreutils/pull/12014
* test(tail): fix flaky test_follow_name_multiple on macOS by @naoNao89 in https://github.com/uutils/coreutils/pull/9636
* tail: improve throughput for -c N file by @oech3 in https://github.com/uutils/coreutils/pull/11979
* tail: reuse existing pipe when stdout is already a pipe by @dragutreis in https://github.com/uutils/coreutils/pull/12463

## tee
* tee: fix input with sleep by @oech3 in https://github.com/uutils/coreutils/pull/11686
* tee: add short-read regression test by @kevinburke in https://github.com/uutils/coreutils/pull/11784
* tee: remove unused returned usize by @oech3 in https://github.com/uutils/coreutils/pull/11830
* tee: avoid 2 Err(e) at match by @oech3 in https://github.com/uutils/coreutils/pull/11878
* tee: drop cfg for unsupported target by @oech3 in https://github.com/uutils/coreutils/pull/11875
* tee: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11876
* tee: move fn copy to MultiWriter & simplify by @oech3 in https://github.com/uutils/coreutils/pull/11899
* tee: remove duplicated flush() by @oech3 in https://github.com/uutils/coreutils/pull/11909
* tee: reduce line of code by @oech3 in https://github.com/uutils/coreutils/pull/11892
* tee: merge logic of flush into write by @xtqqczze in https://github.com/uutils/coreutils/pull/11893
* tee: remove dummy definition & unused return by @oech3 in https://github.com/uutils/coreutils/pull/11923
* tee: drop unnecessary impl by @oech3 in https://github.com/uutils/coreutils/pull/11933
* tee: restore alloc guard for small input by @oech3 in https://github.com/uutils/coreutils/pull/11942
* tee: remove a var by @oech3 in https://github.com/uutils/coreutils/pull/11947
* tee: remove unsafe from test code by @oech3 in https://github.com/uutils/coreutils/pull/12025
* tee: move aborted to MultiWriter by @oech3 in https://github.com/uutils/coreutils/pull/12078
* tee: add benchmark by @oech3 in https://github.com/uutils/coreutils/pull/12134
* tee: drop libc from Cargo.toml by @oech3 in https://github.com/uutils/coreutils/pull/12232
* tee: improve throughput by raw syscall by @oech3 in https://github.com/uutils/coreutils/pull/12131
* tee: don't print EINTR by @oech3 in https://github.com/uutils/coreutils/pull/12461
* tee: simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12493
* tee: restrict to NamedReader by @oech3 in https://github.com/uutils/coreutils/pull/12510

## timeout
* timeout: replace nix with rustix by @gabrielhnf in https://github.com/uutils/coreutils/pull/12440

## touch
* touch: add regression test for pre-epoch date on 32-bit by @sylvestre in https://github.com/uutils/coreutils/pull/11817

## tr
* tr: fix complemented class truncation ordering by @can1357 in https://github.com/uutils/coreutils/pull/11406
* tr: drop '[:...:]' wrapper from invalid character class error by @sylvestre in https://github.com/uutils/coreutils/pull/12122
* tr: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12266

## tty
* tty: Build for Windows by @oech3 in https://github.com/uutils/coreutils/pull/12077
* tty: Build tty.wasm by @oech3 in https://github.com/uutils/coreutils/pull/12079
* tty: support printing msys2 tty path by @ChrisDenton in https://github.com/uutils/coreutils/pull/12083

## unexpand
* unexpand: remove Box dyn - perf +7.5% by @oech3 in https://github.com/uutils/coreutils/pull/11806
* unexpand: rename `uflag` to `utf8` by @cakebaker in https://github.com/uutils/coreutils/pull/11826

## uniq
* uniq: remove a collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11894

## uptime
* clippy(uptime): fix some lints on windows by @xtqqczze in https://github.com/uutils/coreutils/pull/11726

## wc
* wc: replace unsafe sysconf by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11707
* wc: introduce IS_POSIXLY_CORRECT static by @xtqqczze in https://github.com/uutils/coreutils/pull/11853
* wc: avoid pipe() if input is pipe by @oech3 in https://github.com/uutils/coreutils/pull/11636
* wc: Fix fallback when pipe() or splice() failed by @oech3 in https://github.com/uutils/coreutils/pull/11990
* wc: remove else by @oech3 in https://github.com/uutils/coreutils/pull/12165
* wc: reduce some nest by @oech3 in https://github.com/uutils/coreutils/pull/12382
* wc: remove splice_exact by @oech3 in https://github.com/uutils/coreutils/pull/12316
* wc: reduce lines of code by @oech3 in https://github.com/uutils/coreutils/pull/12420
* wc: remove a nest by loop{} by @oech3 in https://github.com/uutils/coreutils/pull/12502

## who
* Fixed panic in who > /dev/full by @AntoxaBarin in https://github.com/uutils/coreutils/pull/11767
* who: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12074

## yes
* yes: simplify logic for buffer creation by @oech3 in https://github.com/uutils/coreutils/pull/11727
* yes: replace match by ok_or_else by @oech3 in https://github.com/uutils/coreutils/pull/11740
* yes: use tee syscall as fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11458
* yes: avoid kernel side length validation by @oech3 in https://github.com/uutils/coreutils/pull/12115
* yes: remove cfg & move ownership of buffer to fn exec by @oech3 in https://github.com/uutils/coreutils/pull/12095
* yes: move import to the other imports by @cakebaker in https://github.com/uutils/coreutils/pull/12153
* yes: remove unnecessary cfg by @oech3 in https://github.com/uutils/coreutils/pull/12159
* yes: fix wrong assumption for stdout by @oech3 in https://github.com/uutils/coreutils/pull/12249
* yes: reduce lines by cfg by @oech3 in https://github.com/uutils/coreutils/pull/12295
* yes: don't mix buffered write and zero-copy by @oech3 in https://github.com/uutils/coreutils/pull/12294
* yes: avoid ambiguous PAGE_SIZE by @oech3 in https://github.com/uutils/coreutils/pull/12370
* yes: fix confusing 1.. and comment by @oech3 in https://github.com/uutils/coreutils/pull/12424
* yes: dedup tee() by @oech3 in https://github.com/uutils/coreutils/pull/12456

## uucore
* fix(uucore): fix build failure by @xtqqczze in https://github.com/uutils/coreutils/pull/11729
* uucore: simplify splice() by @oech3 in https://github.com/uutils/coreutils/pull/11745
* uucore: replace nix of buf_copy by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11765
* uucore: replace nix of FS related parts by rustix by @oech3 in https://github.com/uutils/coreutils/pull/11771
* uucore: enable `process` feature of `rustix` by @cakebaker in https://github.com/uutils/coreutils/pull/11792
* fix(uucore): use is_dir() instead of exists() for locale path resolution by @mattsu2020 in https://github.com/uutils/coreutils/pull/11851
* cp, uucore: remove unused returned u64 by @oech3 in https://github.com/uutils/coreutils/pull/11837
* uucore: remove returned and unused usize by @oech3 in https://github.com/uutils/coreutils/pull/11920
* uucore: simplify fallback when splice failed by @oech3 in https://github.com/uutils/coreutils/pull/11921
* uucore: splice fast-path for head -c & preliminary for dd, tail, split by @oech3 in https://github.com/uutils/coreutils/pull/11844
* uucore: dedup code of unbounded splice with broker by @oech3 in https://github.com/uutils/coreutils/pull/11928
* pipes.rs: add debug_assert! for RAM usage by @oech3 in https://github.com/uutils/coreutils/pull/11994
* uucore, cat: move unbounded splice code by @oech3 in https://github.com/uutils/coreutils/pull/12008
* safe_traversal.rs: remove 1 unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12029
* fix(fs): replace incorrect error handling with last_os_error by @xtqqczze in https://github.com/uutils/coreutils/pull/12057
* refactor(buf_copy): remove unused code by @xtqqczze in https://github.com/uutils/coreutils/pull/12081
* uucore: do not use Linux specific fn at tests by @oech3 in https://github.com/uutils/coreutils/pull/12128
* uucore: fix cfg attributes causing dead code warnings by @xtqqczze in https://github.com/uutils/coreutils/pull/12192
* pipes.rs: don't mix raw write and buffered write by @oech3 in https://github.com/uutils/coreutils/pull/12195
* uucore: remove dead code by @xtqqczze in https://github.com/uutils/coreutils/pull/12223
* uucore/build.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12237
* uucore: remove unsafe get_groups by @oech3 in https://github.com/uutils/coreutils/pull/12270
* uucore/build.rs: small refactoring by @cakebaker in https://github.com/uutils/coreutils/pull/12250
* uucore: remove unsafe make_fifo by @oech3 in https://github.com/uutils/coreutils/pull/12243
* yes, uucore::pipes: merge pipe_with_size to pipe and catch fcntl err by @oech3 in https://github.com/uutils/coreutils/pull/12285
* process: replace getuid with rustix::process::getuid by @Franklin-Qi in https://github.com/uutils/coreutils/pull/12094
* buf_copy.rs: don't test a trivial io::copy wrapper by @oech3 in https://github.com/uutils/coreutils/pull/12344
* od, uucore: Allow reusing RawReader by @oech3 in https://github.com/uutils/coreutils/pull/12385
* uucore: upgrade md-5, sha1, sha2, sha3, digest to latest versions by @gabrielhnf in https://github.com/uutils/coreutils/pull/12367
* pipes.rs: simplify trait and match by @oech3 in https://github.com/uutils/coreutils/pull/12397
* buf_copy/linux.rs: drop unused trait by @oech3 in https://github.com/uutils/coreutils/pull/12345
* pipes.rs: simplify dev_null & remove crate name from comment by @oech3 in https://github.com/uutils/coreutils/pull/12408
* pipes.rs: simplify by io::copy & doc the case it cannot be used by @oech3 in https://github.com/uutils/coreutils/pull/12415
* pipes.rs: remove fcntl overhead from splice_unbounded by @oech3 in https://github.com/uutils/coreutils/pull/12422
* pipes.rs: avoid usage of bool by @oech3 in https://github.com/uutils/coreutils/pull/12444
* pipes.rs: add missing count on fallback by @oech3 in https://github.com/uutils/coreutils/pull/12451
* pipes.rs: deduplicate many cfg's by @oech3 in https://github.com/uutils/coreutils/pull/12436
* pipes.rs: dedup code by including fallback to splice_exact by @oech3 in https://github.com/uutils/coreutils/pull/12472
* pipes.rs: replace bool by Result<(),()> by @oech3 in https://github.com/uutils/coreutils/pull/12454
* buf_copy: remove thin wrapper & useless conversion by @oech3 in https://github.com/uutils/coreutils/pull/12487
* pipes.rs: alias std::io::Result<Result<(), ()>> by @oech3 in https://github.com/uutils/coreutils/pull/12483
* simplify uucore::pipes::send_n_bytes by @oech3 in https://github.com/uutils/coreutils/pull/12491

## Security
* deps: bump rand to 0.10.1 to fix RUSTSEC-2026-0097 by @sylvestre in https://github.com/uutils/coreutils/pull/11756
* tail: fix TOCTOU race in follow retry logic by @sylvestre in https://github.com/uutils/coreutils/pull/11711
* rm: fix path parsing for dot/dotdot protection  by @naoNao89 in https://github.com/uutils/coreutils/pull/11005
* uucore: add safe_copy module with TOCTOU-resistant copy primitives by @sylvestre in https://github.com/uutils/coreutils/pull/12130
* uucore/safe_copy: use rustix Mode flags to avoid mode_t width mismatch by @sylvestre in https://github.com/uutils/coreutils/pull/12140
* chmod: fix TOCTOU race in recursive traversal by @mattsu2020 in https://github.com/uutils/coreutils/pull/11918
* cp: address the remaining toctou issues by @sylvestre in https://github.com/uutils/coreutils/pull/12135
* mv: fix the remaining TOCTOU by @sylvestre in https://github.com/uutils/coreutils/pull/12170
* chroot: resolve all ids before chroot by @victor-prokhorov in https://github.com/uutils/coreutils/pull/11211
* nohup: create nohup.out with mode 0600 by @c-tonneslan in https://github.com/uutils/coreutils/pull/12339

## Code Quality & Cleanup
* Deduplicate block size logic by @sylvestre in https://github.com/uutils/coreutils/pull/11678
* tests: tail: skip test_follow_name_multiple on macOS by @sylvestre in https://github.com/uutils/coreutils/pull/11709
* Add 'tests/tail/tail-n0f' to ignore list by @sylvestre in https://github.com/uutils/coreutils/pull/11710
* forbid scientific notation in numfmt #11655 by @Devel08 in https://github.com/uutils/coreutils/pull/11721
* deny.toml: add `redox_syscall` to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/11749
* fuzz: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11764
* fuzz: bump `rand` to `0.10.1` by @cakebaker in https://github.com/uutils/coreutils/pull/11313
* remove seekable from local cspell conf and use it by @oech3 in https://github.com/uutils/coreutils/pull/11773
* tests/cut: ignore stdin write error on fast-exit delimiter test by @sylvestre in https://github.com/uutils/coreutils/pull/11782
* chore: run cargo shear by @xtqqczze in https://github.com/uutils/coreutils/pull/11838
* Remove authors from Cargo metadata (per RFC 3052) by @xtqqczze in https://github.com/uutils/coreutils/pull/11832
* chore: remove unused entries from spelling wordlist by @xtqqczze in https://github.com/uutils/coreutils/pull/11850
* clippy: fix rust 1.95 lints by @xtqqczze in https://github.com/uutils/coreutils/pull/11861
* locale.rs: fix a cfg with collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11856
* panic.rs: remove collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/11857
* tests: timeout: increase delay on macOS for forward_sigint_to_child by @sylvestre in https://github.com/uutils/coreutils/pull/11874
* panic.rs: use var_os by @xtqqczze in https://github.com/uutils/coreutils/pull/11880
* clippy: warn for large_stack_arrays lint by @xtqqczze in https://github.com/uutils/coreutils/pull/11868
* reduce cfg by target_vendor by @oech3 in https://github.com/uutils/coreutils/pull/11910
* tests: timeout: increase delay on macOS for forward_sigint_to_child by @sylvestre in https://github.com/uutils/coreutils/pull/11881
* refactor: avoid unidiomatic use of and_then by @xtqqczze in https://github.com/uutils/coreutils/pull/11919
* refactor: rename write functions to print for consistency by @xtqqczze in https://github.com/uutils/coreutils/pull/11929
* workspace.wordlist.txt: drop unsafe vmsplice by @oech3 in https://github.com/uutils/coreutils/pull/11946
* fix: macro should use snake_case by @xtqqczze in https://github.com/uutils/coreutils/pull/11967
* cat, splice.rs: replace if with match, add comment by @oech3 in https://github.com/uutils/coreutils/pull/12019
* test_nice.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12040
* test_ls.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12044
* test_tail.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12048
* clippy: fix items_after_statements lint by @xtqqczze in https://github.com/uutils/coreutils/pull/12031
* test_nohup.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12052
* test_test.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12055
* fix: refine feature checks for SELinux and SMACK support by @xtqqczze in https://github.com/uutils/coreutils/pull/12056
* refactor: rustix::io::Errno for CatError by @xtqqczze in https://github.com/uutils/coreutils/pull/12082
* refactor: rename print methods to write for consistency by @xtqqczze in https://github.com/uutils/coreutils/pull/12087
* tests: patch GNU numfmt 'neg-arg-not-option' to accept clap-style error by @sylvestre in https://github.com/uutils/coreutils/pull/12123
* Cargo.toml: unpin `notify` by @cakebaker in https://github.com/uutils/coreutils/pull/11978
* test_tail.rs: increase delay by @oech3 in https://github.com/uutils/coreutils/pull/12155
* reduce usage of nix::unistd::geteuid by @oech3 in https://github.com/uutils/coreutils/pull/12163
* ignore-intermittent.txt: add tests/tail/retry by @oech3 in https://github.com/uutils/coreutils/pull/12169
* fuzz: replace unsafe libc::dup by rustix::io::dup by @blixygetir in https://github.com/uutils/coreutils/pull/12148
* cargo: clarify lto setting by @xtqqczze in https://github.com/uutils/coreutils/pull/12199
* toml: avoid defining tables out-of-order by @xtqqczze in https://github.com/uutils/coreutils/pull/12198
* test_chmod.rs: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12213
* fuzz: remove unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12218
* uutests: remove 1 unsafe by @oech3 in https://github.com/uutils/coreutils/pull/12227
* remove unused import by @oech3 in https://github.com/uutils/coreutils/pull/12230
* tests: replace .no_stdout().no_stderr() chains with .no_output() by @sylvestre in https://github.com/uutils/coreutils/pull/12241
* replace nix getgroups by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12269
* deny.toml: remove `redox_syscall` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/12351
* tests_ls.rs: remove nix by @oech3 in https://github.com/uutils/coreutils/pull/12379
* ignore-intermittent.txt: add 3 tests by @oech3 in https://github.com/uutils/coreutils/pull/12368
* tests_sort.rs: remove nix by @oech3 in https://github.com/uutils/coreutils/pull/12380
* tests_tail.rs: remove nix by @oech3 in https://github.com/uutils/coreutils/pull/12381
* fix(tests): refine feature checks for SELinux by @xtqqczze in https://github.com/uutils/coreutils/pull/12372
* refactor: replace rustix::pipe with std::io::pipe by @xtqqczze in https://github.com/uutils/coreutils/pull/12356
* fix(selinux): add missing os checks by @xtqqczze in https://github.com/uutils/coreutils/pull/12406
* deny.toml: remove `cpufeatures` and `block-buffer` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/12390
* chore: remove duplicate words in six comments by @mvanhorn in https://github.com/uutils/coreutils/pull/12477
* GNUmakefile: avoid bootstrap issue with mkdir by @oech3 in https://github.com/uutils/coreutils/pull/12521

## CI & Build
* [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/uutils/coreutils/pull/11685
* Publish a comment in case of significant size change by @sylvestre in https://github.com/uutils/coreutils/pull/11757
* GnuTests: mask an equivalent df test by @oech3 in https://github.com/uutils/coreutils/pull/11766
* CI/GnuComment: enhance PR commenting logic to update existing comments by @xtqqczze in https://github.com/uutils/coreutils/pull/11763
* CI/GnuComment: add safeguards by @xtqqczze in https://github.com/uutils/coreutils/pull/11793
* fix: replace apt with apt-get in scripts by @xtqqczze in https://github.com/uutils/coreutils/pull/11808
* ci: group openbsd log sections for easier failure triage by @sylvestre in https://github.com/uutils/coreutils/pull/11819
* gitignore: remove .vscode directory from ignored files by @xtqqczze in https://github.com/uutils/coreutils/pull/11839
* Revert "fix: replace apt with apt-get in scripts" by @cakebaker in https://github.com/uutils/coreutils/pull/11835
* CI/SizeComment: enhance PR commenting logic to update existing comments by @xtqqczze in https://github.com/uutils/coreutils/pull/11795
* GnuTests: bump GNU version to 9.11 by @oech3 in https://github.com/uutils/coreutils/pull/11922
* ci: disable credential persistence in checkout steps by @xtqqczze in https://github.com/uutils/coreutils/pull/11951
* fix(ci): correct formatting of comment body by @xtqqczze in https://github.com/uutils/coreutils/pull/11966
* fix(renovate): do not update pinned dependencies by @xtqqczze in https://github.com/uutils/coreutils/pull/11965
* Revert "fix(renovate): do not update pinned dependencies" by @cakebaker in https://github.com/uutils/coreutils/pull/11977
* ci: add timeout for benchmark job by @cakebaker in https://github.com/uutils/coreutils/pull/12219
* vscode: update rust-analyzer check command to use clippy by @xtqqczze in https://github.com/uutils/coreutils/pull/12197
* CI: add tests/misc/io-errors to intermittent by @xtqqczze in https://github.com/uutils/coreutils/pull/12278
* Add CI for cygwin except for date by @oech3 in https://github.com/uutils/coreutils/pull/12304
* build: exclude chcon and runcon from util_map for non-Linux targets by @xtqqczze in https://github.com/uutils/coreutils/pull/12375
* ci: update macOS job features in code quality workflow by @xtqqczze in https://github.com/uutils/coreutils/pull/12386
* ci: specify bash shell for background jobs by @xtqqczze in https://github.com/uutils/coreutils/pull/10491
* make.yml: try to fix Cygwin CI by @oech3 in https://github.com/uutils/coreutils/pull/12496
* ci: add workflow to check TOML files by @xtqqczze in https://github.com/uutils/coreutils/pull/12206

## Documentation
* 0.8.0 release notes by @sylvestre in https://github.com/uutils/coreutils/pull/11691
* wc drop outdated info from BENCHMARKING.md by @oech3 in https://github.com/uutils/coreutils/pull/11720
* docs: remove hashsum from compiles_table.csv by @venoosoo in https://github.com/uutils/coreutils/pull/11732
* yes: add BENCHMARKING.md by @oech3 in https://github.com/uutils/coreutils/pull/12097
* README.md: update compatibility by @oech3 in https://github.com/uutils/coreutils/pull/12302
* docs: remove authors field from book.toml by @xtqqczze in https://github.com/uutils/coreutils/pull/11849
* uucore::pipes::splice_exact: improve document by @oech3 in https://github.com/uutils/coreutils/pull/12414
* docs: update clippy section in DEVELOPMENT.md by @xtqqczze in https://github.com/uutils/coreutils/pull/12369
* Improve documents for splice modules by @oech3 in https://github.com/uutils/coreutils/pull/12455
* docs: add fuzz pointer, AI policy, playground link, and Ubuntu note by @sylvestre in https://github.com/uutils/coreutils/pull/12437
* installation.md: improve AUR docs by @oech3 in https://github.com/uutils/coreutils/pull/12513

## Platform Support
* fix: sort and remove duplicates from feat_wasm feature by @xtqqczze in https://github.com/uutils/coreutils/pull/11737
* tests: add WASI integration test support via wasmtime by @DePasqualeOrg in https://github.com/uutils/coreutils/pull/11717
* cat, windows.rs: simplify bool by @oech3 in https://github.com/uutils/coreutils/pull/12093
* fix: unused import on redox by @xtqqczze in https://github.com/uutils/coreutils/pull/12332

## Dependency Updates
* chore(deps): update rust crate zip to v8.5.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11696
* chore(deps): update rust crate selinux to v0.6.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11702
* chore(deps): update rust crate ctor to 0.9.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11733
* chore(deps): update actions/github-script action to v9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11741
* chore(deps): update rust crates by @xtqqczze in https://github.com/uutils/coreutils/pull/11730
* chore(deps): update rust crate clap_complete to v4.6.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11753
* chore(deps): update vampire/setup-wsl action to v6.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11754
* deps: unpin selinux rust crate by @xtqqczze in https://github.com/uutils/coreutils/pull/11759
* chore(deps): update softprops/action-gh-release action to v3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11769
* chore(deps): update rust crate similar to v3.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11768
* chore(deps): update rust crate ctor to 0.10.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11786
* deps: remove unused rust crate fluent-bundle by @xtqqczze in https://github.com/uutils/coreutils/pull/11776
* chore(deps): update rust crate clap_complete to v4.6.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11797
* chore(deps): update rust crate rayon to v1.12.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11799
* chore(deps): update rust crate clap to v4.6.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11845
* chore(deps): update rust crate divan to v4.5.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11877
* chore(deps): update astral-sh/ruff-action action to v4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11863
* chore(deps): update mozilla-actions/sccache-action action to v0.0.10 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11954
* chore(deps): update rust crate ctor to v0.10.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11955
* chore(deps): update rust crate jiff to v0.2.24 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11964
* chore(deps): update rust crate data-encoding to v2.11.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11982
* chore(deps): update rust crate data-encoding-macro to v0.1.20 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11981
* chore(deps): update rust crate blake3 to v1.8.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/11989
* chore(deps): update rust crate sha3 to 0.10.9 by @xtqqczze in https://github.com/uutils/coreutils/pull/11999
* chore(deps): update rust crate zip to v8.6.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12000
* chore(deps): update rust crate onig to v6.5.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12017
* chore(deps): update rust crate clap_complete to v4.6.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12039
* chore(deps): update rand crate to v0.8.6 by @xtqqczze in https://github.com/uutils/coreutils/pull/12043
* chore(deps): update dawidd6/action-download-artifact action to v21 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12054
* chore(deps): update rust crate selinux to v0.6.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12066
* chore(deps): update rust crate divan to v4.6.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12070
* chore(deps): update rust crate ctor to 0.11.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12067
* chore(deps): update rust crate string-interner to 0.20.0 by @xtqqczze in https://github.com/uutils/coreutils/pull/12103
* chore(deps): update rust crate ctor to 0.12.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12101
* chore(deps): update rust crate kqueue-sys to v1.1.0 by @xtqqczze in https://github.com/uutils/coreutils/pull/12141
* chore(deps): update rust crate crc-catalog to 2.5.0 by @xtqqczze in https://github.com/uutils/coreutils/pull/12151
* chore(deps): update rust crate exacl to 0.13.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12158
* Bump `ctor` & adapt to change by @cakebaker in https://github.com/uutils/coreutils/pull/12132
* chore(deps): update rust crate ctor to v1.0.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12179
* chore(deps): update rust crate ctor to v1.0.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12187
* chore(deps): update rust crate ctor to v1.0.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12203
* chore(deps): update rust crate clap_complete to v4.6.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12216
* bump nix and libc by @oech3 in https://github.com/uutils/coreutils/pull/12233
* chore(deps): update rust crate ctor to v1.0.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12239
* chore(deps): update rust crate clap_complete to v4.6.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12245
* chore(deps): update rust crate filetime to v0.2.29 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12201
* chore(deps): update rust crate ctor to v1.0.6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12347
* chore(deps): update rust crate digest to v0.11.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12388
* deps: remove unnecessary `package` fields by @xtqqczze in https://github.com/uutils/coreutils/pull/11968
* chore(deps): update rust crate divan to v4.7.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12441
* chore(deps): update rust crate similar to v3.1.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12457
* chore(deps): update rust crate jiff to v0.2.25 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12473
* chore(deps): update rust crate jiff to v0.2.26 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12476
* chore(deps): update rust crate jiff to v0.2.27 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12482
* chore(deps): update rust crate memchr to v2.8.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12488
* chore(deps): update rust crate ctor to v1.0.7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12509
* chore(deps): update rust crate jiff to v0.2.28 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12511

## Version Management
* prepare release 0.9.0 by @sylvestre in https://github.com/uutils/coreutils/pull/12494

## New Contributors
* @pre-commit-ci[bot] made their first contribution in https://github.com/uutils/coreutils/pull/11685
* @BipulLamsal made their first contribution in https://github.com/uutils/coreutils/pull/11684
* @Sim-hu made their first contribution in https://github.com/uutils/coreutils/pull/11694
* @THEMIScale made their first contribution in https://github.com/uutils/coreutils/pull/11695
* @Devel08 made their first contribution in https://github.com/uutils/coreutils/pull/11721
* @DePasqualeOrg made their first contribution in https://github.com/uutils/coreutils/pull/11717
* @AntoxaBarin made their first contribution in https://github.com/uutils/coreutils/pull/11767
* @fdncred made their first contribution in https://github.com/uutils/coreutils/pull/9851
* @rossilor95 made their first contribution in https://github.com/uutils/coreutils/pull/11886
* @frenchua made their first contribution in https://github.com/uutils/coreutils/pull/11704
* @pocopepe made their first contribution in https://github.com/uutils/coreutils/pull/11941
* @ChrisDenton made their first contribution in https://github.com/uutils/coreutils/pull/11960
* @nonontb made their first contribution in https://github.com/uutils/coreutils/pull/12022
* @hayato0909 made their first contribution in https://github.com/uutils/coreutils/pull/12032
* @fogti made their first contribution in https://github.com/uutils/coreutils/pull/12073
* @ksgk1 made their first contribution in https://github.com/uutils/coreutils/pull/12013
* @blixygetir made their first contribution in https://github.com/uutils/coreutils/pull/12148
* @fnadeau made their first contribution in https://github.com/uutils/coreutils/pull/12301
* @0xSoftBoi made their first contribution in https://github.com/uutils/coreutils/pull/12327
* @rodrigost23 made their first contribution in https://github.com/uutils/coreutils/pull/9313
* @Franklin-Qi made their first contribution in https://github.com/uutils/coreutils/pull/12094
* @gabrielhnf made their first contribution in https://github.com/uutils/coreutils/pull/12367
* @leno23 made their first contribution in https://github.com/uutils/coreutils/pull/12350
* @c-tonneslan made their first contribution in https://github.com/uutils/coreutils/pull/12339
* @j5awry made their first contribution in https://github.com/uutils/coreutils/pull/11931
* @mvanhorn made their first contribution in https://github.com/uutils/coreutils/pull/12477
* @dragutreis made their first contribution in https://github.com/uutils/coreutils/pull/12463
* @karlicoss made their first contribution in https://github.com/uutils/coreutils/pull/12471
* @joknarf made their first contribution in https://github.com/uutils/coreutils/pull/11554
* @fullwoodenshovel made their first contribution in https://github.com/uutils/coreutils/pull/12330

**Full Changelog**: https://github.com/uutils/coreutils/compare/0.8.0...0.9.0