Rust Coreutils 0.5.0 Release: 87.75% compatibility with GNU Coreutils
Memory safety and Fil-C vs Rust
- One camp argues you can get “100% compatibility + memory safety” by compiling existing GNU coreutils with Fil-C, avoiding a rewrite.
- Others note Fil-C’s GC-like runtime adds 2–4x overhead and higher memory use, roughly in “Java territory,” making it unappealing for new projects compared to Rust/Go/etc.
- Debate over “unknowns”: C/Fil-C eliminate memory-unsafe bugs but still rely on old logic and environment quirks; Rust removes whole classes of memory bugs but can introduce fresh logic errors, as shown by recent Rust-based CVEs.
Performance impact
- Some claim a 4x slowdown for Fil-C is acceptable for safety, especially because most coreutils are I/O bound.
- A quick md5sum/sha256sum test showed no slowdown (even a slight speedup), but others suspect different compiler flags or intrinsics, so results are considered inconclusive.
Stability, maturity, and Ubuntu’s experiment
- Critics object strongly to Ubuntu making uutils the default in a non-LTS release before 100% test pass, calling it premature, unstable, and lacking user benefit.
- Defenders frame 25.10 as an explicit experiment to surface real-world bugs that tests miss, with the option to roll back before LTS.
- There’s friction over opt-out being non-trivial (
--allow-remove-essential) and over treating ordinary users as de facto beta testers.
Compatibility and bugs
- “87.75% compatibility” comes from running the GNU coreutils test suite; known failures are ~12% of tests plus unknown gaps.
- Some failures are described as obscure edge cases or unrealistic inputs; others (e.g., locale-aware sort) are seen as serious for non-English users.
- uutils has contributed new tests and uncovered bugs in GNU coreutils itself.
Licensing and ethics (GPL vs MIT)
- Strong disagreement over replacing GPL’d, decades-old GNU code with an MIT rewrite.
- Concerns: loss of copyleft protections; enabling vendors to ship private security fixes; perceived disrespect toward GNU maintainers.
- Counterpoints: clean-room reimplementation is legally/ethically fine; GNU itself reimplemented proprietary Unix tools under a new license; some view GPLv3 as burdensome and prefer permissive licensing.
Motivations and value of a Rust rewrite
- Supporters cite: drop-in GNU compatibility, better error messages, UTF-8/i18n focus, performance, portability to non-Linux OSes, and a more maintainable language that attracts contributors.
- Skeptics see limited concrete user benefit versus mature “titanium-stable” GNU tools, framing the rewrite as Rust evangelism or politics rather than clear technical necessity.