coreutils 0.11.0

coreutils ~ GNU coreutils (updated); implemented as universal (cross-platform) utils, written in Rust
Documentation
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
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
### **Rust Coreutils 0.10.0 Release:**

We are happy to announce the release of **Rust Coreutils 0.10.0** - a release focused on **GNU compatibility and robustness**. The GNU test suite results improved sharply this cycle (**645 passing, 29 failing**, down from 56), we landed a **second wave of security hardening** (TOCTOU races, safe recursive descent, SELinux labeling at creation, backup guards), and we ran a broad **anti-panic campaign** across the utilities. On top of that: new features (`mv --exchange`, an **OpenSSL backend** for the checksum utilities), more zero-copy/read-ahead **performance** work, and **wasm32-wasip2** support.

---

### GNU Test Suite Compatibility:

| Result        | 0.9.0 | 0.10.0 | Change 0.9.0 to 0.10.0 | % Total 0.9.0 | % Total 0.10.0 | % Change 0.9.0 to 0.10.0 |
|---------------|-------|--------|-------------------------|---------------|----------------|---------------------------|
| Pass          | 625   | 645    | +20                     | 90.58%        | 93.48%         | +2.90%                    |
| Skip          | 8     | 15     | +7                      | 1.16%         | 2.17%          | +1.01%                    |
| Fail          | 56    | 29     | -27                     | 8.12%         | 4.20%          | -3.92%                    |
| Error         | 1     | 1      | 0                       | 0.14%         | 0.14%          | 0%                        |
| Total         | 690   | 690    | 0                       |               |                |                           |

> **Note:** 0.9.0 bumped the GNU reference to 9.11, which added 25 new tests and temporarily pushed the failure count up. This cycle absorbed most of that debt: **failures dropped from 56 to 29** and passes reached an all-time high of **645**.
As we contributed many tests to the GNU implementation, we are also the source of some of these regressions!

---

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

---

### Highlights:

- **GNU Compatibility**
  - **645 passing GNU tests (+20)** and **27 fewer failures**, the largest single-cycle drop we have had
  - Dozens of behavior alignments: `pr` (`-w`/`-W`/`-l`/`-e`/`-o`, merge mode, page ranges), `nproc` (cgroups v2 quota, affinity mask, offline cores, `OMP_*` handling), `date` (out-of-range years, `-d -`, `O` modifier, timezone strings), `numfmt`, `ls`, `du`, `install`, `od`, `truncate`, `fold`, `head`/`tail`, `sum`, `stat`
  - Many error messages now carry the file name and the real OS error instead of a vague or stripped message

- **Security Hardening**
  - Continued the TOCTOU work started in 0.9.0: `touch` no longer uses `O_TRUNC` on create, `mkfifo` drops the path-based `chmod`, `head` checks the open fd instead of the path, `split` hardens the output-open path, `chcon` anchors recursive relabeling to the traversal dirfd
  - Safe recursive descent fixes for `chmod`/`chown` (symlink cycles, `--preserve-root` re-checked during the descent), and `cp` no longer descends into a destination subdirectory that is a symlink
  - SELinux labels are now applied **at creation** in `mkdir`, `mkfifo` and `mknod` instead of being applied afterwards
  - `mv` fails closed when recreating a cross-device directory destination, compares file identity in the `--backup=simple` guard, and strips setuid/setgid when a cross-device copy cannot preserve ownership
  - `chroot` chroots exactly the path `--skip-chdir` validated; `stdbuf` refuses a `libstdbuf` path that cannot be represented in `LD_PRELOAD`; `install` finalizes ownership before mode
  - Added `SECURITY.md` documenting our threat model, scope and reporting process

- **Robustness: Anti-Panic Campaign**
  - Removed panics and aborts across a long list of utilities: `shuf`, `printf`, `numfmt`, `fmt`, `pr`, `chroot`, `dircolors`, `install`, `ln`, `touch`, `stat`, `split`, `expand`, `more`, `kill`, `cp`, `du`, `rm`, `runcon`, `sort`, `chown`/`chgrp`, `dirname`, `expr`, `cksum`, `dd`, `truncate`, `hashsum`
  - Recurring classes fixed: write failures on `/dev/full`, char-boundary panics on multibyte input, integer overflow on extreme widths/precisions/sizes, and unbounded allocations for huge arguments
  - `expr` now uses an iterative parser, so deeply nested expressions no longer overflow the stack

- **New Features**
  - `mv --exchange` to atomically swap two paths
  - `install` supports reflink, and `install -C` now works with `--preserve-timestamps`
  - **OpenSSL backend** for the faster checksum utilities
  - `cut -O` as a short option for `--output-delimiter`
  - `rm --one-file-system`
  - `timeout` now works on Windows, and `tail -f`/`-F` finally follows files on Windows

- **Performance**
  - Read-ahead hints across the `cksum` family, `sum`, `split`, `expand`/`unexpand` and the `base*` utilities
  - `tee` zero-copy fast path; `cat` throughput improvements; faster non-reflink `cp`; cross-device `mv` via the fast copy path
  - `expr`: `index` went from O(N*M) to O(N+M); `uniq` and `du` improvements; `tsort` now buffers its output
  - New benchmarks for `expr`, `tr`, `cut`, `uniq` and locale-aware `sort` merges

- **Internationalization**
  - `cut` supports multibyte characters in non-UTF-8 locales
  - `ls` uses Unicode quotes for the `locale`/`clocale` styles in UTF-8 locales and escapes non-ASCII control characters
  - Fixed `C.UTF-8` being detected as ASCII, and incomplete Fluent fallback bundles
  - `cksum` quotes file names in a locale-aware way

- **Cross-platform Reach**
  - New **wasm32-wasip2** target support
  - Windows: `timeout` implementation, sparse copy support in `cp`, `tail -f`, `cksum` CRLF fix
  - `ls --numeric-uid-gid` on non-unix platforms, `uptime` uses `CLOCK_BOOTTIME` on more platforms

- **Code Quality**
  - `clippy::collapsible_if` and `clippy::match_same_arms` are now clean and enabled workspace-wide
  - Continued `nix` → `rustix` migration (`dd`, `kill`, `sync`, `uptime`) and further removal of `unsafe` and `to_string_lossy`

- **Contributions**: This release was made possible by **50 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

## arch
* arch: remove .to_string_lossy() by @oech3 in https://github.com/uutils/coreutils/pull/13355

## base32, base64, basenc
* baseNM: read ahead by @oech3 in https://github.com/uutils/coreutils/pull/12570
* Fix base32/base64 error for file paths ending in slash by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12726

## cat
* cat: drop fuse workaround by @oech3 in https://github.com/uutils/coreutils/pull/12821
* cat: improve throughput & simplify (split PR) by @oech3 in https://github.com/uutils/coreutils/pull/12850
* cat: don't call io::stdin() twice by @oech3 in https://github.com/uutils/coreutils/pull/13043
* cat: change is_unsafe_override to is_safe_override by @oech3 in https://github.com/uutils/coreutils/pull/13133

## chgrp
* chgrp: unstripped error on operation not permitted error by @Devel08 in https://github.com/uutils/coreutils/pull/13361
* chgrp: fix error message for `--from nonexisting_group GROUP` by @cakebaker in https://github.com/uutils/coreutils/pull/13490
* chgrp: make `test_reference` less strict on Linux by @cakebaker in https://github.com/uutils/coreutils/pull/13650

## chmod
* chmod: always call chmod(2) even when mode bits are unchanged by @sylvestre in https://github.com/uutils/coreutils/pull/13213
* test_chmod.rs: remove an ignored test covered by check-safe-traversal.sh by @oech3 in https://github.com/uutils/coreutils/pull/13298
* chmod: fix 2 clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13509
* chmod: report the real error when a target's metadata is inaccessible by @0xfandom in https://github.com/uutils/coreutils/pull/13637

## chown
* chown: -h on symlink to directory operates on link, not target by @rossilor95 in https://github.com/uutils/coreutils/pull/12522
* chown: restrict no-dereference symlink ctime test to Linux by @rossilor95 in https://github.com/uutils/coreutils/pull/12556
* chown, chgrp: report a verbose stdout write error instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13381
* fix(chown,chgrp): print --verbose success lines to stdout by @l46983284-cpu in https://github.com/uutils/coreutils/pull/13419

## chroot
* chroot: don't panic on --skip-chdir with a non-resolving NEWROOT by @leeewee in https://github.com/uutils/coreutils/pull/12732
* chroot: avoid unwrap-like operation by @oech3 in https://github.com/uutils/coreutils/pull/13306

## cksum
* cksum family: read ahead file by @oech3 in https://github.com/uutils/coreutils/pull/12549
* cksum: fix collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/12942
* feat: add OpenSSL backend for checksum utilities by @sylvestre in https://github.com/uutils/coreutils/pull/12412
* checksum: handle stdin before directory checks by @wtcpython in https://github.com/uutils/coreutils/pull/13394
* fix(cksum): reject absurdly large SHAKE --length instead of aborting by @koopatroopa787 in https://github.com/uutils/coreutils/pull/13083
* cksum: fix checksum giving false fails on windows due to crlf -> lf conversion by @nikolalukovic in https://github.com/uutils/coreutils/pull/13431
* cksum: Locale aware filename quoting in not-found messages by @RenjiSann in https://github.com/uutils/coreutils/pull/13733

## comm
* comm: remove overhead by .is_dir() by @oech3 in https://github.com/uutils/coreutils/pull/13371

## cp
* cp: replace match by is_ok_and by @oech3 in https://github.com/uutils/coreutils/pull/12688
* cp: simplify bool by @oech3 in https://github.com/uutils/coreutils/pull/12689
* cp: remove unuseful .map(|_|()) by @oech3 in https://github.com/uutils/coreutils/pull/12700
* cp: remove unnecessary cfgs in Linux module by @cakebaker in https://github.com/uutils/coreutils/pull/12692
* cp: Added error handling for printing debug message by @max-amb in https://github.com/uutils/coreutils/pull/12710
* cp: simplify return type of `backup_dest()` by @cakebaker in https://github.com/uutils/coreutils/pull/12719
* cp: handle --parents source ending in parent dir by @nkgotcode in https://github.com/uutils/coreutils/pull/12639
* cp: propagate the --attributes-only destination open error by @leeewee in https://github.com/uutils/coreutils/pull/12625
* cp: improve perf for non-reflink copy by @oech3 in https://github.com/uutils/coreutils/pull/13057
* minorbug(cp): io error messages vague when using -g by @Devel08 in https://github.com/uutils/coreutils/pull/13110
* cp: fix --remove-destination deleting source when dest is the same file under a different path by @LoukasPap in https://github.com/uutils/coreutils/pull/13135
* cp: implement sparse copy support for windows by @nikolalukovic in https://github.com/uutils/coreutils/pull/12686
* fix(cp): remove overrides_with_all from flag group by @BAMF0 in https://github.com/uutils/coreutils/pull/13258
* cp: don't panic on write error when printing --verbose output by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13310
* cp: fix --reflink=never by @oech3 in https://github.com/uutils/coreutils/pull/13065
* fix(cp): change error to align with GNU by @BAMF0 in https://github.com/uutils/coreutils/pull/13382
* cp: dedup match & remove GNU version from comment by @oech3 in https://github.com/uutils/coreutils/pull/13556
* cp: don't hang forever when the backup destination is a fifo by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13344
* cp: fix 2 clippy expections by @oech3 in https://github.com/uutils/coreutils/pull/13537
* cp: remove feat_acl & exacl by @oech3 in https://github.com/uutils/coreutils/pull/13626
* cp: simplify loop by while let by @oech3 in https://github.com/uutils/coreutils/pull/13741

## csplit
* csplit: include the file name in output-file errors by @eyupcanakman in https://github.com/uutils/coreutils/pull/13138
* csplit: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13512

## cut
* cut: support `-O` as short for `--output-delimiter` by @cakebaker in https://github.com/uutils/coreutils/pull/13011
* cut: simplify type of `COMPLEX_SEQUENCE` in test by @cakebaker in https://github.com/uutils/coreutils/pull/12601
* cut: add a benchmark for a range inside long multibyte lines by @sylvestre in https://github.com/uutils/coreutils/pull/13732
* cut: support multibyte characters in non-UTF-8 locales by @sylvestre in https://github.com/uutils/coreutils/pull/12635
* cut: refactor part of `uumain` by @cakebaker in https://github.com/uutils/coreutils/pull/13757

## date
* date: reject excessive format widths by @puneetdixit200 in https://github.com/uutils/coreutils/pull/12497
* date: document the format-width cap and cover its boundary by @sylvestre in https://github.com/uutils/coreutils/pull/12658
* date: parse <digits>j as a local time of day by @eyupcanakman in https://github.com/uutils/coreutils/pull/12747
* date: reject a date string with two timezone abbreviations by @mistaste in https://github.com/uutils/coreutils/pull/12883
* date: rename variable `form` to `fmt` by @cakebaker in https://github.com/uutils/coreutils/pull/12898
* Date parse datetime 0.15 fixes by @sylvestre in https://github.com/uutils/coreutils/pull/13284
* test(date): validate locale formats via runtime expansion by @naoNao89 in https://github.com/uutils/coreutils/pull/9831
* date: preserve invalid timezone format strings by @wtcpython in https://github.com/uutils/coreutils/pull/13442
* date: treat -d - as midnight by @wtcpython in https://github.com/uutils/coreutils/pull/13511
* date: simplify code & fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13513
* date: support out-of-range years in default output by @abhishekpradhan in https://github.com/uutils/coreutils/pull/13516
* date: dedup boundary check for bytes by @oech3 in https://github.com/uutils/coreutils/pull/13697
* date: strip the O strftime modifier in the C locale by @igorgbr in https://github.com/uutils/coreutils/pull/13702
* date: use `%Od` instead of `%Ol` in test by @cakebaker in https://github.com/uutils/coreutils/pull/13725

## dd
* dd: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/12567
* dd: support nocache on android, freebsd by @oech3 in https://github.com/uutils/coreutils/pull/12602
* dd: propagate truncate errors on regular files by @sylvestre in https://github.com/uutils/coreutils/pull/12667
* fix(dd): reject oversized block sizes instead of crashing by @miniex in https://github.com/uutils/coreutils/pull/12887
* test_dd.rs: remove needless printf by @oech3 in https://github.com/uutils/coreutils/pull/13467
* dd: keep short reads from corrupting re-blocked output by @relative23 in https://github.com/uutils/coreutils/pull/13459
* dd: derive the count_bytes read budget from bytes read by @relative23 in https://github.com/uutils/coreutils/pull/13435
* dd use .map_err by @oech3 in https://github.com/uutils/coreutils/pull/13631
* dd: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13628

## df
* df: Syncing when paths are provided by @max-amb in https://github.com/uutils/coreutils/pull/12707
* df: simplify bool returning by @oech3 in https://github.com/uutils/coreutils/pull/12946
* df: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13518
* refactor uu_df so crate users can call df without printing to stdout. by @philocalyst in https://github.com/uutils/coreutils/pull/12281
* df: make the public paths argument inferable and pin the test block size by @sylvestre in https://github.com/uutils/coreutils/pull/13611

## dir
* dir: report stdout write errors by @wtcpython in https://github.com/uutils/coreutils/pull/13495

## dircolors
* dircolors: remove commented out code & make two functions private by @cakebaker in https://github.com/uutils/coreutils/pull/12514
* dircolors: improve test by @cakebaker in https://github.com/uutils/coreutils/pull/12529
* dircolors: turn integration test into unit test & remove unsafe code by @cakebaker in https://github.com/uutils/coreutils/pull/12547
* dircolors: don't panic on an invalid TERM/COLORTERM glob by @leeewee in https://github.com/uutils/coreutils/pull/12728
* dircolors: reduce nested code by @oech3 in https://github.com/uutils/coreutils/pull/12811
* dircolors: replace `if`/`else` chain with `match` by @cakebaker in https://github.com/uutils/coreutils/pull/12822

## dirname
* dirname: fix dirname . >/dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/12810

## du
* du: don't deduplicate --files0-from entries by @sylvestre in https://github.com/uutils/coreutils/pull/13177
* du: don't panic when writing to stdout fails by @muscar in https://github.com/uutils/coreutils/pull/10689
* du: do not deduplicate --files0-from / operand names by name by @sylvestre in https://github.com/uutils/coreutils/pull/12750
* du: Get rid of the last `print!` calls by @RenjiSann in https://github.com/uutils/coreutils/pull/13437
* du: our implementation is slower than GNU's by @wilmerdooley in https://github.com/uutils/coreutils/pull/13296
* du: fix Windows dead-code lint by @relative23 in https://github.com/uutils/coreutils/pull/13517
* du: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13520
* du(fix): print latest time with --time by @hlsxx in https://github.com/uutils/coreutils/pull/13543
* du: Refactor loop into while let by @RenjiSann in https://github.com/uutils/coreutils/pull/13739

## env
* env: GNU-compatibility fixes by @sylvestre in https://github.com/uutils/coreutils/pull/12657
* env: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13521

## expand
* expand: stream tab spaces to avoid abort on large --tabs values by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/13005
* (un)expand: set default of FILE by clap by @oech3 in https://github.com/uutils/coreutils/pull/13122
* (un)expand: read ahead file by @oech3 in https://github.com/uutils/coreutils/pull/13123
* expand: single-pass fast path check with early exit by @devnexen in https://github.com/uutils/coreutils/pull/10924
* expand/unexpand: fix display width of 3- and 4-byte UTF-8 characters  by @sylvestre in https://github.com/uutils/coreutils/pull/13352

## expr
* expr: add a benchmark by @sylvestre in https://github.com/uutils/coreutils/pull/12578
* expr: speed up index from O(N*M) to O(N+M) by @sylvestre in https://github.com/uutils/coreutils/pull/12580
* fix(expr): make the parser iterative to avoid a stack overflow by @abendrothj in https://github.com/uutils/coreutils/pull/13333
* expr: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13522

## fmt
* fmt: large width value causes a panic by @Devel08 in https://github.com/uutils/coreutils/pull/12757
* fmt: measure -w in UTF-8 bytes to match GNU by @sankalpsthakur in https://github.com/uutils/coreutils/pull/13651

## fold
* fold: fix crash when reading from pseudo-devices by @lavafroth in https://github.com/uutils/coreutils/pull/11314
* fold: insert fold newline at read-buffer boundary by @sylvestre in https://github.com/uutils/coreutils/pull/12682
* gnucompability(fold): uutils fold accept width 0 but gnu fold rejects it by @Devel08 in https://github.com/uutils/coreutils/pull/12744
* fold: continue processing files after an open error by @sylvestre in https://github.com/uutils/coreutils/pull/12668

## groups
* groups: simplify by .map_err by @oech3 in https://github.com/uutils/coreutils/pull/13708

## hashsum
* fix(hashsum): always report malformed input with --status (fixes #12867) by @koopatroopa787 in https://github.com/uutils/coreutils/pull/12973

## head
* head: deduplicate flush() workaround by @oech3 in https://github.com/uutils/coreutils/pull/12563
* fix(head): avoid overflow panic on huge negative -n/-c values by @koopatroopa787 in https://github.com/uutils/coreutils/pull/12854
* head: set default of FILE to - by clap by @oech3 in https://github.com/uutils/coreutils/pull/13354
* head/tail: parse zero byte counts with size suffix as 0 bytes by @MeGaurav4 in https://github.com/uutils/coreutils/pull/13706

## hostid
* hostid: add the french locale by @sylvestre in https://github.com/uutils/coreutils/pull/12913

## id
* id: don't exit 1 when uid/gid name lookup fails in default output by @c-tonneslan in https://github.com/uutils/coreutils/pull/12341

## install
* fix install file with invalid uid by @zhw2101024 in https://github.com/uutils/coreutils/pull/7789
* install: don't panic when the strip program is killed by a signal by @leeewee in https://github.com/uutils/coreutils/pull/12730
* minor fix for error message install to /proc/self/mem by @zhw2101024 in https://github.com/uutils/coreutils/pull/12718
* fix install same file with backup flag by @zhw2101024 in https://github.com/uutils/coreutils/pull/12716
* install: warn --strip-program without -s by @oech3 in https://github.com/uutils/coreutils/pull/12956
* install: include missing source path in stat error by @1mpossible-code in https://github.com/uutils/coreutils/pull/13030
* install: fix dangerous index access by @oech3 in https://github.com/uutils/coreutils/pull/13140
* test_install.rs: remove binaries from repo by @oech3 in https://github.com/uutils/coreutils/pull/13159
* test_install.rs: remove cfg(not(windows)) by @oech3 in https://github.com/uutils/coreutils/pull/13173
* test_install.rs: remove unnecessary cfg by @oech3 in https://github.com/uutils/coreutils/pull/13182
* install: allow -C with --preserve-timestamps by @sylvestre in https://github.com/uutils/coreutils/pull/13176
* install: add error with -d when an argument is not dir by @LoukasPap in https://github.com/uutils/coreutils/pull/13175
* install: use early return to remove indentation level by @cakebaker in https://github.com/uutils/coreutils/pull/13244
* install: remove dead code by @oech3 in https://github.com/uutils/coreutils/pull/13336
* install: remove unused cfg by @oech3 in https://github.com/uutils/coreutils/pull/13337
* install: remove an unwrap() by @oech3 in https://github.com/uutils/coreutils/pull/13342
* install: remove unreachable cfg block by @oech3 in https://github.com/uutils/coreutils/pull/13341
* install: simplify if & match by @oech3 in https://github.com/uutils/coreutils/pull/13339
* install fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13364
* install: show backup failure causes by @wtcpython in https://github.com/uutils/coreutils/pull/13349
* install: support reflink by @oech3 in https://github.com/uutils/coreutils/pull/13059
* install: use portable strip wrappers in tests by @wtcpython in https://github.com/uutils/coreutils/pull/13575
* install: dedup id resolution and make root test robust by @sylvestre in https://github.com/uutils/coreutils/pull/12680
* test_install.rs: strip myself instead of strip_source_file by @oech3 in https://github.com/uutils/coreutils/pull/13705

## join
* join: apply the -e filler to empty output fields by @dhruv-15-03 in https://github.com/uutils/coreutils/pull/13718

## kill
* kill: replace nix::sys::signal with rustix::process by @mattsu2020 in https://github.com/uutils/coreutils/pull/12326
* kill: use safe rustix Signal constructor, fix spell-checker comment by @sylvestre in https://github.com/uutils/coreutils/pull/12636
* kill: reject out-of-range obsolete -N signal instead of sending SIGTERM by @sylvestre in https://github.com/uutils/coreutils/pull/13116
* kill: move `Ok(())` outside of `match` by @cakebaker in https://github.com/uutils/coreutils/pull/13129
* kill: accept SIGIO as alias for SIGPOLL by @favilances in https://github.com/uutils/coreutils/pull/13294
* kill: remove useless fn rustix_to_io by @oech3 in https://github.com/uutils/coreutils/pull/13304
* kill: report write errors when listing signals instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13300
* kill: integrate thiserror for error handling by @xtqqczze in https://github.com/uutils/coreutils/pull/13397

## ln
* ln: accept non-utf8 source names in target-dir modes by @can1357 in https://github.com/uutils/coreutils/pull/11403
* ln: don't panic on --relative with a parentless target by @leeewee in https://github.com/uutils/coreutils/pull/12631
* ln: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13523
* ln: improve readability of `relative_path` fn by @cakebaker in https://github.com/uutils/coreutils/pull/13585
* ln: remove unreachable code by @cakebaker in https://github.com/uutils/coreutils/pull/13599
* ln: don't refuse --backup when src/dst are different names for the same inode by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13345
* ln: include destination in symbolic link failure message by @MeGaurav4 in https://github.com/uutils/coreutils/pull/13673

## ls
* test_ls.rs: Add test case for -T by @oech3 in https://github.com/uutils/coreutils/pull/12840
* ls, du: don't panic on an empty time style after posix- strip by @leeewee in https://github.com/uutils/coreutils/pull/12634
* ls: use Unicode quotes for locale/clocale styles in UTF-8 locales by @sylvestre in https://github.com/uutils/coreutils/pull/12675
* ls: escape non-ASCII control chars in UTF-8 locale quoting by @sylvestre in https://github.com/uutils/coreutils/pull/13150
* ls: treat '.' and '..' command-line args as directories, not symlinks by @sylvestre in https://github.com/uutils/coreutils/pull/12656
* bug(ls): when --tabsize is a negative number ls successeds instead of rejecting it by @Devel08 in https://github.com/uutils/coreutils/pull/13278
* ls: simplify tab size parsing and loop the tabsize tests by @sylvestre in https://github.com/uutils/coreutils/pull/13283
* ls: allow detached --sort, --format, --time, --block-size by @bachorp in https://github.com/uutils/coreutils/pull/13281
* ls: avoid leading quote-alignment space for colored names by @paolo-losi in https://github.com/uutils/coreutils/pull/12433
* ls: Improve quote alignement check by @RenjiSann in https://github.com/uutils/coreutils/pull/13433
* ls: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13519
* test(ls): regression test for -aRv recursing into ./.. (#13501) by @Gooh456 in https://github.com/uutils/coreutils/pull/13515
* ls: simplify bool by @oech3 in https://github.com/uutils/coreutils/pull/13634
* ls: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13644
* ls: support numeric-uid-gid on non-unix platforms by @eduardomourar in https://github.com/uutils/coreutils/pull/13663
* ls: simplify match by .filter by @oech3 in https://github.com/uutils/coreutils/pull/13696

## mkdir
* mkdir: use `map_err` instead of `match` by @cakebaker in https://github.com/uutils/coreutils/pull/13546

## mkfifo
* mkfifo: handle required arg by clap by @oech3 in https://github.com/uutils/coreutils/pull/13504
* mkfifo: stop hardcoding "File exists" as the error message by @Gooh456 in https://github.com/uutils/coreutils/pull/13551

## mktemp
* mktemp: use `map_err` instead of `match` by @cakebaker in https://github.com/uutils/coreutils/pull/12489

## more
* more: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13524
* more: avoid overflow when -n is the maximum u16 value by @SAY-5 in https://github.com/uutils/coreutils/pull/12970
* test(more): add integration test for -n u16::MAX regression by @sylvestre in https://github.com/uutils/coreutils/pull/13565
* more: replace is_tty with is_terminal by @xtqqczze in https://github.com/uutils/coreutils/pull/13638

## mv
* mv: use copy_stream for fast cross-device move by @oech3 in https://github.com/uutils/coreutils/pull/13046
* mv: ban eprintln! to avoid SIGABRT by @oech3 in https://github.com/uutils/coreutils/pull/13208
* mv: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13525
* mv: add --exchange to atomically swap two paths by @sylvestre in https://github.com/uutils/coreutils/pull/13215

## nice
* nice: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/12911
* nice: remove 1 unwrap() using match by @oech3 in https://github.com/uutils/coreutils/pull/12909
* nice: robust clamping overflow by @oech3 in https://github.com/uutils/coreutils/pull/12914
* nice: simplify `is_prefix_of()` by @cakebaker in https://github.com/uutils/coreutils/pull/12915
* nice: remove unuseful fn by @oech3 in https://github.com/uutils/coreutils/pull/12924
* nice: untangle complex `match` by @cakebaker in https://github.com/uutils/coreutils/pull/12916
* nice: add newline to warning message by @Devel08 in https://github.com/uutils/coreutils/pull/12929

## nohup
* nohup: report command execution errors by @wtcpython in https://github.com/uutils/coreutils/pull/13391

## nproc
* nproc: let default value of --ignore 0 by clap by @oech3 in https://github.com/uutils/coreutils/pull/12823
* nproc: reduce a nest by if by @oech3 in https://github.com/uutils/coreutils/pull/12849
* nproc: reject quota with some sched if OMP_NUM_THREADS=NaN by @oech3 in https://github.com/uutils/coreutils/pull/12853
* nproc: simplify by value_parser! by @oech3 in https://github.com/uutils/coreutils/pull/12856
* nproc: use chain for OMP_THREAD_LIMIT by @oech3 in https://github.com/uutils/coreutils/pull/12857
* nproc: honor affinity mask by @oech3 in https://github.com/uutils/coreutils/pull/12859
* nproc: clamp OMP_NUM_THREADS overflow by @oech3 in https://github.com/uutils/coreutils/pull/12861
* nproc: PASS nproc-quota-systemd.sh (manually parse cgroups2 quota) by @oech3 in https://github.com/uutils/coreutils/pull/12871
* nproc: simplify OMP_NUM_THREADS parsing by @oech3 in https://github.com/uutils/coreutils/pull/12880
* nproc: don't show offline cores by @oech3 in https://github.com/uutils/coreutils/pull/12890
* nproc: clamp --ignore overflow by @oech3 in https://github.com/uutils/coreutils/pull/12863
* nproc: strip errno by @oech3 in https://github.com/uutils/coreutils/pull/12908
* nproc: simplify core count by @oech3 in https://github.com/uutils/coreutils/pull/12753

## numfmt
* numfmt: prevent panic if float precision specifier > 65535 by @Devel08 in https://github.com/uutils/coreutils/pull/12600
* numfmt: bound --format precision for a zero value by @leeewee in https://github.com/uutils/coreutils/pull/12939
* numfmt: require equals for --header by @bachorp in https://github.com/uutils/coreutils/pull/13273
* numfmt: reject an oversized --from-unit/--to-unit instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13484
* numfmt: do not panic on a multibyte whitespace field separator by @leeewee in https://github.com/uutils/coreutils/pull/13485
* numfmt: add --from=auto test for multibyte whitespace separator by @kushals256 in https://github.com/uutils/coreutils/pull/13487
* numfmt: prevent panic for --format precision > 65535 on remaining paths by @SAY-5 in https://github.com/uutils/coreutils/pull/13514
* numfmt: simplify bool & fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13526

## od
* od: bad error message whenever the argument is a directory by @Devel08 in https://github.com/uutils/coreutils/pull/13386
* fix: regression upstream gnu od (#11613) by @uselessgoddess in https://github.com/uutils/coreutils/pull/13396
* od: dedup match by @oech3 in https://github.com/uutils/coreutils/pull/13558
* od: avoid dangerous index access pattern by @oech3 in https://github.com/uutils/coreutils/pull/13592
* od: skip past end of seekable inputs without error  by @sylvestre in https://github.com/uutils/coreutils/pull/12646
* od: fix clippy by @oech3 in https://github.com/uutils/coreutils/pull/13710
* od: restore skip-past-end handling for seekable special files by @sylvestre in https://github.com/uutils/coreutils/pull/13713
* od: remove Box from enum CurrentReader by @oech3 in https://github.com/uutils/coreutils/pull/13714
* od: remove enum var not used at production by @oech3 in https://github.com/uutils/coreutils/pull/13738

## paste
* paste: reset the delimiter list per file in serial mode by @winklemad in https://github.com/uutils/coreutils/pull/13439
* paste: simplify 2 loop by while by @oech3 in https://github.com/uutils/coreutils/pull/13740

## pr
* pr: reject a non-positive expand-tab width (-e0) by @leeewee in https://github.com/uutils/coreutils/pull/12615
* pr: reject a multibyte -e/-n argument instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/12762
* pr: uutils pr accepts -W 0 and -w 0 while gnu pr rejects it by @Devel08 in https://github.com/uutils/coreutils/pull/12779
* pr: uutils pr accepts -l 0 and --pages 0 while GNU doesn't by @Devel08 in https://github.com/uutils/coreutils/pull/12781
* pr: uutils pr accepts negative expand tabs argument, GNU pr doesn't by @Devel08 in https://github.com/uutils/coreutils/pull/12782
* Fix pr -o/--indent overflow handling by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12974
* pr: stream -o/--indent offset to avoid abort on large values by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12994
* pr: pr panics (Option::unwrap() on None) in merge mode -m on empty input #12995 by @Devel08 in https://github.com/uutils/coreutils/pull/13080
* pr: use `match` instead of `if`/`else` chain by @cakebaker in https://github.com/uutils/coreutils/pull/13004
* pr: avoid parsing numeric filename suffixes as operands by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/13353
* pr :simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13500
* pr: simplify clap's FILES & drop a clone() by @oech3 in https://github.com/uutils/coreutils/pull/13499
* pr: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13527
* pr: report missing file as "pr: <file>: <message>" by @addielaruee in https://github.com/uutils/coreutils/pull/13534
* pr: refactor IO error handling by @xtqqczze in https://github.com/uutils/coreutils/pull/13549
* pr: report starting pages beyond page count by @wtcpython in https://github.com/uutils/coreutils/pull/13574

## printf
* printf: avoid panic on integer precision above u16::MAX by @SAY-5 in https://github.com/uutils/coreutils/pull/12579
* printf, csplit: fix formatting for zero value when precision is zero by @eyupcanakman in https://github.com/uutils/coreutils/pull/13425

## ptx
* ptx:  fix panic caused by improper assert by @WhateverAWS in https://github.com/uutils/coreutils/pull/10916
* ptx: reject invalid sentence regexps by @TheAdamWarlock in https://github.com/uutils/coreutils/pull/12892
* fix(ptx): missing filename in error messages by @HackingRepo in https://github.com/uutils/coreutils/pull/13251
* ptx: use char counts for before-chunk sizing in get_output_chunks by @sylvestre in https://github.com/uutils/coreutils/pull/12685
* ptx: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13709

## pwd
* pwd: ignore non-option arguments, drop getcwd disabling from pwd-long test by @sylvestre in https://github.com/uutils/coreutils/pull/12610
* pwd: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13366

## realpath
* realpath: fix 'nonexistent/./' to be treated as invalid by @LoukasPap in https://github.com/uutils/coreutils/pull/13164
* realpath: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13360
* realpath: don't require read permission on a directory just to confirm a trailing slash by @Chaganti-Reddy in https://github.com/uutils/coreutils/pull/13315

## rm
* rm: hint to use ./-foo when removing a dash-prefixed file by @sylvestre in https://github.com/uutils/coreutils/pull/12608
* rm: rewrite dash-hint test with original fixtures by @sylvestre in https://github.com/uutils/coreutils/pull/12737
* rm: one-file-system by @DarthStrom in https://github.com/uutils/coreutils/pull/12819
* rm: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13528
* rm: do not panic when verbose output write fails by @l46983284-cpu in https://github.com/uutils/coreutils/pull/13659
* rm: report a verbose write failure once without aborting the removal by @sylvestre in https://github.com/uutils/coreutils/pull/13679
* rm: use `translate` macro for two error messages by @cakebaker in https://github.com/uutils/coreutils/pull/13730

## runcon
* runcon: report a stdout write error instead of panicking by @leeewee in https://github.com/uutils/coreutils/pull/13380
* runcon: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13649

## seq
* seq, printf: avoid integer overflow on extreme precision/exponent by @sylvestre in https://github.com/uutils/coreutils/pull/13246
* seq: simplify match by .map_err by @oech3 in https://github.com/uutils/coreutils/pull/13598

## shred
* shred: simplify nested matches by @cakebaker in https://github.com/uutils/coreutils/pull/12524
* shred: fix error message when path has trailing slash by @francesco-gaglione in https://github.com/uutils/coreutils/pull/12725
* shred: two refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/12780
* shred: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13529
* shred: report random source open errors by @wtcpython in https://github.com/uutils/coreutils/pull/13571
* shred: report the real error for an inaccessible file by @0xfandom in https://github.com/uutils/coreutils/pull/13640

## shuf
* shuf: fix panic/abort on large -i range without small --head-count by @leeewee in https://github.com/uutils/coreutils/pull/12501
* shuf: don't truncate -o output when input or random source fails by @sylvestre in https://github.com/uutils/coreutils/pull/13113

## sort
* sort: fix locale collation strength for hyphen ordering by @JuanCruzMateos in https://github.com/uutils/coreutils/pull/12677
* sort: reject --parallel non-zero by @oech3 in https://github.com/uutils/coreutils/pull/13024
* sort: ignore `--parallel` on WASI by @cakebaker in https://github.com/uutils/coreutils/pull/13028
* sort: test punctuation-only differences are kept by -u under locale by @sylvestre in https://github.com/uutils/coreutils/pull/13142
* sort: add merge benchmarks for the UTF-8 locale by @sylvestre in https://github.com/uutils/coreutils/pull/13196
* sort: fix panic on non-UTF-8 filenames with --files0-from by @ppmpreetham in https://github.com/uutils/coreutils/pull/11593
* sort: use os_string_from_vec for --files0-from names by @leeewee in https://github.com/uutils/coreutils/pull/12773
* sort: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13530
* sort: simplify match of chars by @oech3 in https://github.com/uutils/coreutils/pull/13536
* sort: do not panic when a write fails during a merge by @mgravell in https://github.com/uutils/coreutils/pull/13654
* sort: do not panic when --check stops at the first disorder by @mgravell in https://github.com/uutils/coreutils/pull/13652
* sort: make return value of `loop` explicit by @cakebaker in https://github.com/uutils/coreutils/pull/13674

## split
* split: read ahead input by @oech3 in https://github.com/uutils/coreutils/pull/12662
* split.rs: dedup io::copy by @oech3 in https://github.com/uutils/coreutils/pull/12663
* split: remove commented out code by @cakebaker in https://github.com/uutils/coreutils/pull/12666
* split: use `map_err` instead of `match` by @cakebaker in https://github.com/uutils/coreutils/pull/12664
* split: reject excessive suffix lengths by @wondr-wclabs in https://github.com/uutils/coreutils/pull/12609
* split: reject a zero chunk count for -n l/N and r/N by @leeewee in https://github.com/uutils/coreutils/pull/12613
* split: simplify matches! and loop by @oech3 in https://github.com/uutils/coreutils/pull/13052
* split: fix --verbose >/dev/full panic by @oech3 in https://github.com/uutils/coreutils/pull/13054
* split: remove buffering by @oech3 in https://github.com/uutils/coreutils/pull/13069
* split: dedup if by @oech3 in https://github.com/uutils/coreutils/pull/13078
* split: simplify parsing io-blksize by @oech3 in https://github.com/uutils/coreutils/pull/13082
* split: remove Box<dyn Write> by @oech3 in https://github.com/uutils/coreutils/pull/13077
* split: replace OPT_ by options:: by @oech3 in https://github.com/uutils/coreutils/pull/13070
* split: simplify match bool by @oech3 in https://github.com/uutils/coreutils/pull/13067
* split: remove dummy std::io::Cursor allocation by @oech3 in https://github.com/uutils/coreutils/pull/13079
* split: reduce strong BufRead dependency by @oech3 in https://github.com/uutils/coreutils/pull/13099
* split: replace match by map_err by @oech3 in https://github.com/uutils/coreutils/pull/13111
* split: remove unused clippy:: by @oech3 in https://github.com/uutils/coreutils/pull/13101
* split: add `platform/wasi.rs` by @cakebaker in https://github.com/uutils/coreutils/pull/13076
* split: remove condition by moving reset by @cakebaker in https://github.com/uutils/coreutils/pull/13062
* split: extract proper errno from OS by @oech3 in https://github.com/uutils/coreutils/pull/13112
* split: remove io::copy for LineChunkWriter by @oech3 in https://github.com/uutils/coreutils/pull/13141
* split: remove BufReader if possible by @oech3 in https://github.com/uutils/coreutils/pull/13179
* split: extract error message from os at open_file_error by @oech3 in https://github.com/uutils/coreutils/pull/13411
* split: allow writing to symlink to nonseekable by @oech3 in https://github.com/uutils/coreutils/pull/13416
* split: translate! creating file by @oech3 in https://github.com/uutils/coreutils/pull/13100
* split: fix I/O error handling for device full conditions by @sylvestre in https://github.com/uutils/coreutils/pull/11239

## stat
* stat: fix char-boundary panic on an invalid directive after a multibyte char by @leeewee in https://github.com/uutils/coreutils/pull/12617
* stat: bad error message when directory doesn't exist by @Devel08 in https://github.com/uutils/coreutils/pull/13026
* chore(l10n): fix typo in stat -L size by @BAMF0 in https://github.com/uutils/coreutils/pull/13429
* stat: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13531
* stat: use .filter & dedup check for char by @oech3 in https://github.com/uutils/coreutils/pull/13535
* stat: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13648

## stty
* stty: avoid overflow when rounding max baud rate by @sjh9714 in https://github.com/uutils/coreutils/pull/13318
* stty: fix trailing semicolon in macro used in expression position by @sylvestre in https://github.com/uutils/coreutils/pull/13468

## sum
* sum: read ahead for perf for 1st run by @oech3 in https://github.com/uutils/coreutils/pull/12569
* sum: when / is appended to a regular file, uutils sum reports incorrect error messages by @Devel08 in https://github.com/uutils/coreutils/pull/12870
* sum: sum /proc/self/mem error lacks file path by @Devel08 in https://github.com/uutils/coreutils/pull/12990
* sum: disable test on OpenBSD by @cakebaker in https://github.com/uutils/coreutils/pull/13044
* test_sum.rs: simplify cfg by @oech3 in https://github.com/uutils/coreutils/pull/13051
* sum: remove Box<dyn Read> by @oech3 in https://github.com/uutils/coreutils/pull/13074
* sum: extract proper open & read error from OS by @oech3 in https://github.com/uutils/coreutils/pull/13367

## sync
* sync: drop unuseful comment by @oech3 in https://github.com/uutils/coreutils/pull/12705
* sync: replace match by ok_or_else by @oech3 in https://github.com/uutils/coreutils/pull/12706
* sync: use map_err by @oech3 in https://github.com/uutils/coreutils/pull/12704
* sync: simplify if block by @oech3 in https://github.com/uutils/coreutils/pull/13375
* sync: replace nix by rustix by @oech3 in https://github.com/uutils/coreutils/pull/13590

## tac
* tac: set .default_value for FILES by @oech3 in https://github.com/uutils/coreutils/pull/13503
* tac: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13532
* tac: simplify .filter by @oech3 in https://github.com/uutils/coreutils/pull/13690

## tail
* tail: replace .ok().is_some_and by .is_ok_and by @oech3 in https://github.com/uutils/coreutils/pull/12690
* tail: remove unnecessary .as_fd() by @oech3 in https://github.com/uutils/coreutils/pull/12739
* tail: drop outdated comment about <&- by @oech3 in https://github.com/uutils/coreutils/pull/12752
* tail: reduce code by @oech3 in https://github.com/uutils/coreutils/pull/12755
* tail: fix a collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13107
* tail: treat a watched file replaced by a symlink as untailable by @sylvestre in https://github.com/uutils/coreutils/pull/12661
* tail: remove .to_string_lossy() by @oech3 in https://github.com/uutils/coreutils/pull/13356
* tail: continue processing files after error by @lauchimoon in https://github.com/uutils/coreutils/pull/13445
* tail, touch: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13533
* tail: remove commented out line by @cakebaker in https://github.com/uutils/coreutils/pull/13539
* tail: simplify match by @oech3 in https://github.com/uutils/coreutils/pull/13563
* tail: fix -f/-F not following files on Windows (#4827) by @crutkas in https://github.com/uutils/coreutils/pull/13248
* tail: remove an unused var: old_md by @oech3 in https://github.com/uutils/coreutils/pull/13636
* tail: replace matches! by is_some_and, avoid negative name by @oech3 in https://github.com/uutils/coreutils/pull/13635
* tail: remove an unwrap() by @oech3 in https://github.com/uutils/coreutils/pull/13707
* tests(tail): fix race in untailable-symlink test by @eduardomourar in https://github.com/uutils/coreutils/pull/13704
* tail(test): Attempt to fix flaky tail pipe test by increasing byte count by @Xylphy in https://github.com/uutils/coreutils/pull/13701

## tee
* tee: avoid 0fill & heap alloc by @oech3 in https://github.com/uutils/coreutils/pull/12527
* tee: fix incorrect comment about flush by @oech3 in https://github.com/uutils/coreutils/pull/12540
* tee: remove ErrorKind::Other, simplify already discarded Result by @oech3 in https://github.com/uutils/coreutils/pull/12953
* tee: simplify aborted bool by @oech3 in https://github.com/uutils/coreutils/pull/12988
* tee: add zero-copy fast-path by @oech3 in https://github.com/uutils/coreutils/pull/11943
* tee: avoid returning double negative Result by @oech3 in https://github.com/uutils/coreutils/pull/13407

## timeout
* fix(timeout, uucore): use sigwait and timers for waiting by @Alonely0 in https://github.com/uutils/coreutils/pull/13237
* timeout: Implemention for windows by @nikolalukovic in https://github.com/uutils/coreutils/pull/13363

## touch
* touch: do not hang on a reader-less FIFO by @sylvestre in https://github.com/uutils/coreutils/pull/12735
* touch: fix char-boundary panic on a multibyte char in a -t timestamp by @leeewee in https://github.com/uutils/coreutils/pull/12619
* touch: report original input in -t timestamp error message by @wtcpython in https://github.com/uutils/coreutils/pull/13321
* touch: remove unnecessary error msg by @cakebaker in https://github.com/uutils/coreutils/pull/13325
* touch: parse unpadded dates in local time by @wtcpython in https://github.com/uutils/coreutils/pull/13340
* touch: simplify bool, remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13365
* touch: update times on owned files with no read/write permission by @sylvestre in https://github.com/uutils/coreutils/pull/12638

## tr
* tr: add codspeed benchmark by @parasol-aser in https://github.com/uutils/coreutils/pull/12189

## true
* true, false: strip errno & cleanup use by @oech3 in https://github.com/uutils/coreutils/pull/13591

## truncate
* truncate: process all files when one fails by @sylvestre in https://github.com/uutils/coreutils/pull/12734
* truncate: remove duplicate test by @cakebaker in https://github.com/uutils/coreutils/pull/12756
* truncate: simplify fn is_modifier by @oech3 in https://github.com/uutils/coreutils/pull/13412
* truncate: a few trivial refactorings by @cakebaker in https://github.com/uutils/coreutils/pull/13413
* fix(truncate): reject relative size overflow by @ThomasHabets in https://github.com/uutils/coreutils/pull/13427
* truncate: missing input value in error when -s flag is empty by @Devel08 in https://github.com/uutils/coreutils/pull/13588

## tsort
* tsort: simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12550
* Add buffered printing and lock output stream to tsort by @mrkalling in https://github.com/uutils/coreutils/pull/12733
* tsort simplify cfg by @oech3 in https://github.com/uutils/coreutils/pull/13219
* tsort: remove unreachable error case by @cakebaker in https://github.com/uutils/coreutils/pull/13238
* tsort: remove unnecessary uses of unsafe by @mrkalling in https://github.com/uutils/coreutils/pull/13323
* tsort: improve expect error message by @xtqqczze in https://github.com/uutils/coreutils/pull/13566

## unexpand
* unexpand: reject too-large --tabs increment instead of overflowing by @santhreal in https://github.com/uutils/coreutils/pull/13383

## uniq
* uniq: add benchmarks for -w/--check-chars by @sylvestre in https://github.com/uutils/coreutils/pull/13247
* Uniq: improve performances  by @sylvestre in https://github.com/uutils/coreutils/pull/13249
* uniq: remove `write_line_terminator` macro by @cakebaker in https://github.com/uutils/coreutils/pull/13632

## uptime
* uptime: fix leading zero in the hours field by @eyupcanakman in https://github.com/uutils/coreutils/pull/13098
* uucore, uptime: replace unsafe libc::clock_gettime by rustix by @Devel08 in https://github.com/uutils/coreutils/pull/13291
* uptime: use CLOCK_BOOTTIME on additional platforms by @xtqqczze in https://github.com/uutils/coreutils/pull/13461
* uptime: drop extra spaces by @oech3 in https://github.com/uutils/coreutils/pull/13498

## users
* users: fix clippy::collapsible_if (OpenBSD) by @oech3 in https://github.com/uutils/coreutils/pull/13547

## wc
* wc: cleanup cfg by @oech3 in https://github.com/uutils/coreutils/pull/12559
* wc: remove unnecessary .as_fd() by @oech3 in https://github.com/uutils/coreutils/pull/12738
* wc: remove a nest by cfg by @oech3 in https://github.com/uutils/coreutils/pull/12802
* wc: splice non FIFO stream too by @oech3 in https://github.com/uutils/coreutils/pull/12736

## who
* fix(who): add missing rustix feature by @xtqqczze in https://github.com/uutils/coreutils/pull/13681

## yes
* yes: improve throughput & simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12650
* yes: match with GNU's strace behaviour by @oech3 in https://github.com/uutils/coreutils/pull/12717
* yes: prepare supporting invalid unicode by @oech3 in https://github.com/uutils/coreutils/pull/12935
* yes: fix clippy::unnecessary_wraps by @oech3 in https://github.com/uutils/coreutils/pull/13003

## uucore
* simplify pipe wrapper by @oech3 in https://github.com/uutils/coreutils/pull/12528
* pipes:rs: replace unnecessary splice by read-ahead hint by @oech3 in https://github.com/uutils/coreutils/pull/12548
* pipes.rs: fix typo by @oech3 in https://github.com/uutils/coreutils/pull/12554
* uucore: remove unnecessary .as_fd() by @oech3 in https://github.com/uutils/coreutils/pull/12740
* uucore: supress clippy::collapsible_if warning by @oech3 in https://github.com/uutils/coreutils/pull/12940
* uucore: handle SIGRTMIN+N and SIGRTMAX-N notation by @enr0n in https://github.com/uutils/coreutils/pull/12149
* uucore: remove dead code by @oech3 in https://github.com/uutils/coreutils/pull/13183
* uucore: rename copy_stream to copy_fast to avoid confusion by @oech3 in https://github.com/uutils/coreutils/pull/13289
* locale: fix incomplete fallback bundles by @BAMF0 in https://github.com/uutils/coreutils/pull/13257
* locale: simplify partial-resource fallback with unwrap_or_else by @sylvestre in https://github.com/uutils/coreutils/pull/13301
* perms.rs: replace unnecessary to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13359
* uucore: replace unnecessary to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13358
* uucore/fsxattr: simplify two matches by @cakebaker in https://github.com/uutils/coreutils/pull/13362
* fn starts_with_plus by @oech3 in https://github.com/uutils/coreutils/pull/13357
* backup_control.rs: remove unsafe & Mutex by @oech3 in https://github.com/uutils/coreutils/pull/12290
* uucore parser: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13510
* signals.rs: fix clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13508
* uucore: fix C.UTF-8 locale incorrectly detected as ASCII by @mufeedali in https://github.com/uutils/coreutils/pull/12525
* lib.rs: simplify fn read_yes by @oech3 in https://github.com/uutils/coreutils/pull/13692
* uucore: document strip_errno with an example by @sylvestre in https://github.com/uutils/coreutils/pull/13724
* uucore: use workspace dependencies by @xtqqczze in https://github.com/uutils/coreutils/pull/13729
* error: clarify UUsageError documentation by @xtqqczze in https://github.com/uutils/coreutils/pull/13737

## Security
* Fix recursive descent by @sylvestre in https://github.com/uutils/coreutils/pull/12541
* chmod/chown: symlink cycles detection by @nikolalukovic in https://github.com/uutils/coreutils/pull/11805
* touch: drop O_TRUNC on create to close TOCTOU race (#10019) by @sylvestre in https://github.com/uutils/coreutils/pull/12171
* head: Fixed TOCTOU bug in checking of metadata by @max-amb in https://github.com/uutils/coreutils/pull/12439
* head: add TOCTOU regression tests and fix comment typo by @sylvestre in https://github.com/uutils/coreutils/pull/12637
* mkfifo: drop path-based chmod to close TOCTOU race (#10020) by @sylvestre in https://github.com/uutils/coreutils/pull/12174
* util: move touch/head TOCTOU checks into check-toctou.sh by @sylvestre in https://github.com/uutils/coreutils/pull/12643
* split: harden output open path against TOCTOU target swaps by @sylvestre in https://github.com/uutils/coreutils/pull/12565
* chcon: anchor recursive relabel resolution to traversal dirfd by @sylvestre in https://github.com/uutils/coreutils/pull/12566
* mv: regression test + strace check for cross-device O_NOFOLLOW (#10015) by @sylvestre in https://github.com/uutils/coreutils/pull/12468
* cp: don't open FIFOs/devices when preserving timestamps by @sylvestre in https://github.com/uutils/coreutils/pull/13351
* head: check directory on open fd, not via path is_dir() (#11972) by @sylvestre in https://github.com/uutils/coreutils/pull/12173
* chmod: re-check --preserve-root during the recursive descent by @sylvestre in https://github.com/uutils/coreutils/pull/13621
* uucore: add O_NOFOLLOW to DirFd::open_file_at by @sylvestre in https://github.com/uutils/coreutils/pull/13623
* cp: do not descend into a destination subdirectory that is a symlink by @sylvestre in https://github.com/uutils/coreutils/pull/13624
* install: finalize ownership before mode, and skip the mode if chown fails by @sylvestre in https://github.com/uutils/coreutils/pull/13629
* mv: compare file identity in the --backup=simple safety guard by @sylvestre in https://github.com/uutils/coreutils/pull/13660
* mknod: label the node at creation instead of relabelling it after by @sylvestre in https://github.com/uutils/coreutils/pull/13668
* Backup guard: improve support for mv, cp & install by @sylvestre in https://github.com/uutils/coreutils/pull/13672
* stdbuf: refuse a libstdbuf path that cannot be represented in LD_PRELOAD by @sylvestre in https://github.com/uutils/coreutils/pull/13622
* mv: fail closed when recreating a cross-device directory destination by @sylvestre in https://github.com/uutils/coreutils/pull/13627
* mkdir, mkfifo: label at creation instead of relabelling after by @sylvestre in https://github.com/uutils/coreutils/pull/13676
* chroot: chroot the path that --skip-chdir validated by @sylvestre in https://github.com/uutils/coreutils/pull/13678
* mv: strip setuid/setgid when the cross-device copy cannot preserve ownership by @sylvestre in https://github.com/uutils/coreutils/pull/13675

## Code Quality & Cleanup
* remove some collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/12537
* remove some collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/12539
* Fix clippy by @zhw2101024 in https://github.com/uutils/coreutils/pull/12645
* ignore a ln wasm test by @sylvestre in https://github.com/uutils/coreutils/pull/12679
* uufuzz: simplify by @oech3 in https://github.com/uutils/coreutils/pull/12745
* Simplify if-guard-then-bool returns by @sylvestre in https://github.com/uutils/coreutils/pull/12702
* test: simplify code by @oech3 in https://github.com/uutils/coreutils/pull/12888
* workspace.wordlist.txt: remove hashsum by @oech3 in https://github.com/uutils/coreutils/pull/12907
* test: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/12938
* Cargo.toml: drop unused feat_os_windows_legacy by @oech3 in https://github.com/uutils/coreutils/pull/13055
* Use Option::ok_or with ? instead of let...else returning Err by @sylvestre in https://github.com/uutils/coreutils/pull/13102
* Stabilize some benchmarks by @sylvestre in https://github.com/uutils/coreutils/pull/13254
* clippy: fix lints by @xtqqczze in https://github.com/uutils/coreutils/pull/13329
* fuzz_date.rs: remove to_string_lossy by @oech3 in https://github.com/uutils/coreutils/pull/13369
* Cargo.toml: enable clippy::used_underscore_items by @oech3 in https://github.com/uutils/coreutils/pull/13542
* complete fix for clippy::collapsible_if by @oech3 in https://github.com/uutils/coreutils/pull/13538
* fix more ruff warnings by @sylvestre in https://github.com/uutils/coreutils/pull/13560
* refactor: use core::ffi types by @xtqqczze in https://github.com/uutils/coreutils/pull/13568
* Cargo.toml: drop unnecessary comment by @oech3 in https://github.com/uutils/coreutils/pull/13589
* clippy: fix with_capacity_zero beta lint by @xtqqczze in https://github.com/uutils/coreutils/pull/13602
* fix: nightly clippy redundant else block lint by @HackingRepo in https://github.com/uutils/coreutils/pull/13601
* clippy: allow missing_const_for_thread_local false positives by @xtqqczze in https://github.com/uutils/coreutils/pull/12333
* test: fix clippy::match_same_arms by @oech3 in https://github.com/uutils/coreutils/pull/13548
* test: fix `unreachable_patterns` lint on Windows by @cakebaker in https://github.com/uutils/coreutils/pull/13616
* fix some clippy::match_same_arms's (split #13541) by @oech3 in https://github.com/uutils/coreutils/pull/13617
* test: widen several linux-only tests to run on all unix platforms by @eduardomourar in https://github.com/uutils/coreutils/pull/13666
* test: fix platform assumptions in du and realpath tests by @eduardomourar in https://github.com/uutils/coreutils/pull/13665
* enable clippy::match_same_arms globally by @oech3 in https://github.com/uutils/coreutils/pull/13689
* cargo: move lints section after dependencies and features by @xtqqczze in https://github.com/uutils/coreutils/pull/13715
* benchmarks: prepare args outside benchmark by @xtqqczze in https://github.com/uutils/coreutils/pull/10388
* test: fix comparison of integers wider than i128 by @dhruv-15-03 in https://github.com/uutils/coreutils/pull/13719

## CI & Build
* CICD: remove an unused variable by @oech3 in https://github.com/uutils/coreutils/pull/12534
* openbsd.yml: improve perf & sync disk space cleanup by @oech3 in https://github.com/uutils/coreutils/pull/12583
* openbsd.yml: get additional free disk space by @oech3 in https://github.com/uutils/coreutils/pull/12627
* GnuTests (SMACK): bump busybox URL by @oech3 in https://github.com/uutils/coreutils/pull/12754
* Potential fix for code scanning alert no. 5: Workflow does not contain permissions by @sylvestre in https://github.com/uutils/coreutils/pull/12655
* make.yml: reduce binary size by @oech3 in https://github.com/uutils/coreutils/pull/12247
* GnuTests: remove LD_PRELOAD from nproc-quota.sh & avoid 0 period by @oech3 in https://github.com/uutils/coreutils/pull/13255
* util: re-point GNU test harness at current checkout in run-gnu-test.sh by @sylvestre in https://github.com/uutils/coreutils/pull/13163
* make.yml: install uutils to CI image by @oech3 in https://github.com/uutils/coreutils/pull/9634
* CICD.yml: Publish both of coreutils and individual MSVC *.exe by @oech3 in https://github.com/uutils/coreutils/pull/11270
* Group fuzz targets in fuzzing workflow by @mattsu2020 in https://github.com/uutils/coreutils/pull/12450
* Revert "make.yml: install uutils to CI image" by @oech3 in https://github.com/uutils/coreutils/pull/13406
* ci(FixPR): add explicit least-privilege permissions block by @kobihikri in https://github.com/uutils/coreutils/pull/13402
* fuzzing.yml: simplify host-tuple by @oech3 in https://github.com/uutils/coreutils/pull/13392
* make.yml: don't publish cygwin bins (hot fix for CI) by @oech3 in https://github.com/uutils/coreutils/pull/13456
* benchmarks: reduce CodSpeed CI load to avoid cache API rate limits by @sylvestre in https://github.com/uutils/coreutils/pull/13462
* GNUmakefile: don't try to install libstdbuf for Windows target by @oech3 in https://github.com/uutils/coreutils/pull/12533
* CI: remove actions/setup-python by @oech3 in https://github.com/uutils/coreutils/pull/13465
* ci: fix Cygwin build failure due to Windows Mandatory ASLR by @sylvestre in https://github.com/uutils/coreutils/pull/13470
* fix(ci): keep coverage profraw writable under umask 0777 tests by @l46983284-cpu in https://github.com/uutils/coreutils/pull/13502
* fuzzing.yml: Bump GNU coreutils to 9.11 by @oech3 in https://github.com/uutils/coreutils/pull/13201
* Revert "fuzzing.yml: Bump GNU coreutils to 9.11" by @sylvestre in https://github.com/uutils/coreutils/pull/13559
* GnuTests: backport cat/splice.sh by @oech3 in https://github.com/uutils/coreutils/pull/13387
* Disable Redox target in CICD workflow by @sylvestre in https://github.com/uutils/coreutils/pull/13657
* ci: Change the spell detection strategy by @sylvestre in https://github.com/uutils/coreutils/pull/13472
* ci: skip cspell on pre-commit.ci by @sylvestre in https://github.com/uutils/coreutils/pull/13661
* fix the CI by @sylvestre in https://github.com/uutils/coreutils/pull/13711

## Documentation
* CONTRIBUTING: link to the review guidelines website by @sylvestre in https://github.com/uutils/coreutils/pull/12523
* installation.md: fix broken ubuntu link by @cakebaker in https://github.com/uutils/coreutils/pull/12515
* installation.md: bump Ubuntu version by @oech3 in https://github.com/uutils/coreutils/pull/12526
* release notes for 0.9.0 by @sylvestre in https://github.com/uutils/coreutils/pull/12531
* SECURITY.md: document threat model, scope, and GitHub reporting by @sylvestre in https://github.com/uutils/coreutils/pull/12724
* we have a domain name now by @sylvestre in https://github.com/uutils/coreutils/pull/13114
* CONTRIBUTING.md: Add URL to get latest GNU coreutils by @oech3 in https://github.com/uutils/coreutils/pull/13233
* CONTRIBUTING.md: improve wording of reference GNU coreutils section by @sylvestre in https://github.com/uutils/coreutils/pull/13269
* README: fix gnu vs musl note by @JohannesSchilling in https://github.com/uutils/coreutils/pull/13303
* docs: fix macOS tier 1 targets and platform compatibility table by @wtcpython in https://github.com/uutils/coreutils/pull/13305
* chore: fix markdown rendering typo by @HackingRepo in https://github.com/uutils/coreutils/pull/13586

## Platform Support
* chore: restrict Android cfg too 64-bit to match `linux_execfn` by @YumeYuka in https://github.com/uutils/coreutils/pull/12416
* wasm: support for wasm32-wasip2 target by @eduardomourar in https://github.com/uutils/coreutils/pull/12653

## Dependency Updates
* chore(deps): update rust crate libfuzzer-sys to v0.4.13 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12606
* chore(deps): update codecov/codecov-action action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12678
* chore(deps): update rust crate regex to v1.12.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12746
* chore(deps): update rust crate memchr to v2.8.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12796
* Bump `time` & adapt `pinky` and `who` to API change by @cakebaker in https://github.com/uutils/coreutils/pull/12872
* chore(deps): update actions/checkout action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/12966
* Bump `getrandom` from `0.4.2` to `0.4.3` by @cakebaker in https://github.com/uutils/coreutils/pull/12957
* chore(deps): update rust crate jiff to v0.2.29 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13008
* Bump `itertools` from `0.14.0` to `0.15.0` by @cakebaker in https://github.com/uutils/coreutils/pull/12987
* chore(deps): update rust crate quote to v1.0.46 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13021
* chore(deps): update rust crate time to v0.3.51 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13022
* chore(deps): update rust crate memmap2 to v0.9.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13033
* chore(deps): update rust crate divan to v5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13050
* chore(deps): update actions/cache action to v6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13049
* chore(deps): update rust crate bstr to v1.12.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13071
* chore(deps): update rust crate icu_collator to v2.2.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13072
* chore(deps): update rust crate bstr to v1.12.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13081
* chore(deps): update rust crate divan to v5.0.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13106
* Bump `phf` & `phf_codegen` from `0.13.1` to `0.14.0` by @cakebaker in https://github.com/uutils/coreutils/pull/13048
* chore(deps): update rust crate openssl to v0.10.81 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13188
* chore(deps): update rust crate jiff to v0.2.31 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13214
* chore(deps): update rust crate indicatif to v0.18.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13211
* chore(deps): update rust crate time to v0.3.52 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13229
* chore(deps): update rust crate clap_complete to v4.6.6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13236
* chore(deps): update rust crate time to v0.3.53 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13239
* chore(deps): update rust crate console to v0.16.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13242
* chore(deps): update rust crate indicatif to v0.18.6 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13243
* chore(deps): update rust crate clap_complete to v4.6.7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13245
* chore(deps): update rust crate rand to v0.10.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13253
* chore(deps): update actions/checkout action to v7 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13189
* chore(deps): update rust crate selinux to v0.6.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13262
* chore(deps): update rust crate rustc-hash to v2.1.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13261
* chore(deps): update davidanson/markdownlint-cli2-action action to v24 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13266
* chore(deps): update reactivecircus/android-emulator-runner action to v2.38.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13277
* chore(deps): update astral-sh/ruff-action action to v4.1.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13279
* Bump `defmt` from `1.1.0` to `1.1.1` by @cakebaker in https://github.com/uutils/coreutils/pull/13271
* chore(deps): update rust crate ctor to v1.0.8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13285
* deny.toml: remove `winnow` from skip list by @cakebaker in https://github.com/uutils/coreutils/pull/13290
* Bump `crossbeam-epoch` from `0.9.18` to `0.9.20` by @cakebaker in https://github.com/uutils/coreutils/pull/13299
* chore(deps): update rust crate memchr to v2.8.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13309
* chore(deps): update rust crate jiff to v0.2.32 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13322
* chore(deps): update rust crate regex to v1.13.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13328
* chore(deps): update rust crate bstr to v1.13.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13405
* fix(cargo): update filetime dependency version constraint by @xtqqczze in https://github.com/uutils/coreutils/pull/12334
* chore(deps): update rust crate clap to v4.6.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13414
* chore(deps): update rust crate regex to v1.13.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13415
* chore(deps): update rust crate ctor to v1.0.9 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13417
* chore(deps): update rust crate self_cell to v1.3.0 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13418
* chore(deps): update rust crate cfg_aliases to v0.2.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13424
* chore(deps): update rust crate quote to v1.0.47 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13448
* chore(deps): update rust crate proc-macro2 to v1.0.107 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13447
* chore(deps): update rust crate jiff to v0.2.33 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13446
* Bump `thiserror` & add `syn` to skip list by @cakebaker in https://github.com/uutils/coreutils/pull/13457
* Bump `spin` from `0.10.0` to `0.10.1` by @cakebaker in https://github.com/uutils/coreutils/pull/13455
* chore(deps): update rust crate jiff to v0.2.34 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13463
* chore(deps): update rust crate time to v0.3.54 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13469
* chore(deps): update rust crate clap to v4.6.3 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13477
* chore(deps): update actions/checkout action to v7.0.1 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13476
* chore(deps): update rust crate libc to v0.2.187 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13486
* chore(deps): update rust crate syn to v3.0.2 by @xtqqczze in https://github.com/uutils/coreutils/pull/13474
* chore(deps): update rust crate libc to v0.2.188 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13489
* chore(deps): update rust crate libc to v0.2.189 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13497
* chore(deps): update rust crate clap to v4.6.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13496
* chore(deps): update rust crate glob to v0.3.4 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13492
* chore(deps): update rust crate ctor to v1.0.10 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13491
* fuzz: update thiserror to 2.0.19 by @xtqqczze in https://github.com/uutils/coreutils/pull/13553
* chore(deps): update rust crate jiff to v0.2.35 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13573
* chore(deps): update rust crate socket2 to v0.6.5 by @xtqqczze in https://github.com/uutils/coreutils/pull/13577
* chore(deps): update rust crate jiff-tzdb to v0.1.8 by @xtqqczze in https://github.com/uutils/coreutils/pull/13582
* chore(deps): update rust crate num-bigint to v0.4.8 by @xtqqczze in https://github.com/uutils/coreutils/pull/13581
* chore(deps): run cargo shear by @xtqqczze in https://github.com/uutils/coreutils/pull/13583
* chore(deps): update rust crate ctor to v1.0.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13584
* chore(deps): update rust crate zmij to 1.0.23 by @xtqqczze in https://github.com/uutils/coreutils/pull/13587
* chore(deps): update rust crate clap_complete to v4.6.8 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13606
* chore(deps): update rust crate jobserver to v0.1.35 by @xtqqczze in https://github.com/uutils/coreutils/pull/13607
* chore(deps): update rust crate displaydoc to v0.2.7 by @xtqqczze in https://github.com/uutils/coreutils/pull/13618
* chore(deps): update rust crate zerocopy to v0.8.55 by @xtqqczze in https://github.com/uutils/coreutils/pull/13619
* chore(deps): update codspeedhq/action action to v5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13642
* chore(deps): update mozilla-actions/sccache-action action to v0.0.11 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13641
* chore(deps): update rust crate ctor to v1.0.12 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13647
* chore(deps): update rust crate clap to v4.6.5 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13677
* chore(deps): update rust crate time to v0.3.55 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13693
* deps: update cfg_aliases dependency to use workspace configuration by @xtqqczze in https://github.com/uutils/coreutils/pull/13712
* chore(deps): update rust crate data-encoding-macro to v0.1.21 by @xtqqczze in https://github.com/uutils/coreutils/pull/13726
* chore(deps): update rust crate similar to v3.1.2 by @renovate[bot] in https://github.com/uutils/coreutils/pull/13743

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

## New Contributors
* @leeewee made their first contribution in https://github.com/uutils/coreutils/pull/12501
* @SAY-5 made their first contribution in https://github.com/uutils/coreutils/pull/12579
* @puneetdixit200 made their first contribution in https://github.com/uutils/coreutils/pull/12497
* @wondr-wclabs made their first contribution in https://github.com/uutils/coreutils/pull/12609
* @JuanCruzMateos made their first contribution in https://github.com/uutils/coreutils/pull/12677
* @francesco-gaglione made their first contribution in https://github.com/uutils/coreutils/pull/12725
* @TheAdamWarlock made their first contribution in https://github.com/uutils/coreutils/pull/12726
* @koopatroopa787 made their first contribution in https://github.com/uutils/coreutils/pull/12854
* @mrkalling made their first contribution in https://github.com/uutils/coreutils/pull/12733
* @mistaste made their first contribution in https://github.com/uutils/coreutils/pull/12883
* @DarthStrom made their first contribution in https://github.com/uutils/coreutils/pull/12819
* @nkgotcode made their first contribution in https://github.com/uutils/coreutils/pull/12639
* @enr0n made their first contribution in https://github.com/uutils/coreutils/pull/12149
* @1mpossible-code made their first contribution in https://github.com/uutils/coreutils/pull/13030
* @LoukasPap made their first contribution in https://github.com/uutils/coreutils/pull/13164
* @ppmpreetham made their first contribution in https://github.com/uutils/coreutils/pull/11593
* @HackingRepo made their first contribution in https://github.com/uutils/coreutils/pull/13251
* @bachorp made their first contribution in https://github.com/uutils/coreutils/pull/13273
* @JohannesSchilling made their first contribution in https://github.com/uutils/coreutils/pull/13303
* @favilances made their first contribution in https://github.com/uutils/coreutils/pull/13294
* @Chaganti-Reddy made their first contribution in https://github.com/uutils/coreutils/pull/13310
* @wtcpython made their first contribution in https://github.com/uutils/coreutils/pull/13305
* @sjh9714 made their first contribution in https://github.com/uutils/coreutils/pull/13318
* @muscar made their first contribution in https://github.com/uutils/coreutils/pull/10689
* @miniex made their first contribution in https://github.com/uutils/coreutils/pull/12887
* @parasol-aser made their first contribution in https://github.com/uutils/coreutils/pull/12189
* @santhreal made their first contribution in https://github.com/uutils/coreutils/pull/13383
* @kobihikri made their first contribution in https://github.com/uutils/coreutils/pull/13402
* @ThomasHabets made their first contribution in https://github.com/uutils/coreutils/pull/13427
* @paolo-losi made their first contribution in https://github.com/uutils/coreutils/pull/12433
* @uselessgoddess made their first contribution in https://github.com/uutils/coreutils/pull/13396
* @winklemad made their first contribution in https://github.com/uutils/coreutils/pull/13439
* @l46983284-cpu made their first contribution in https://github.com/uutils/coreutils/pull/13419
* @lauchimoon made their first contribution in https://github.com/uutils/coreutils/pull/13445
* @relative23 made their first contribution in https://github.com/uutils/coreutils/pull/13459
* @kushals256 made their first contribution in https://github.com/uutils/coreutils/pull/13487
* @wilmerdooley made their first contribution in https://github.com/uutils/coreutils/pull/13296
* @addielaruee made their first contribution in https://github.com/uutils/coreutils/pull/13534
* @mufeedali made their first contribution in https://github.com/uutils/coreutils/pull/12525
* @philocalyst made their first contribution in https://github.com/uutils/coreutils/pull/12281
* @crutkas made their first contribution in https://github.com/uutils/coreutils/pull/13248
* @abhishekpradhan made their first contribution in https://github.com/uutils/coreutils/pull/13516
* @eduardomourar made their first contribution in https://github.com/uutils/coreutils/pull/12653
* @Gooh456 made their first contribution in https://github.com/uutils/coreutils/pull/13515
* @sankalpsthakur made their first contribution in https://github.com/uutils/coreutils/pull/13651
* @0xfandom made their first contribution in https://github.com/uutils/coreutils/pull/13640
* @mgravell made their first contribution in https://github.com/uutils/coreutils/pull/13654
* @MeGaurav4 made their first contribution in https://github.com/uutils/coreutils/pull/13673
* @igorgbr made their first contribution in https://github.com/uutils/coreutils/pull/13702
* @dhruv-15-03 made their first contribution in https://github.com/uutils/coreutils/pull/13718

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