github uutils/coreutils 0.4.0

9 hours ago

📦 Rust Coreutils 0.4.0 Release:

We are pleased to announce the release of Rust Coreutils 0.4.0 — continuing our journey toward full GNU compatibility with improved test coverage, enhanced functionality, and robust implementations!


Highlights:

  • Enhanced GNU Compatibility

    • 544 passing tests (+12 from 0.3.0), achieving 85.80% compatibility
    • Reduced failures from 68 to 56 (-12)
    • Better compatibility with GNU date timezone handling
  • Algorithm & Performance Improvements

    • factor: Integrated num_prime crate for faster u64/u128 factorization
    • tsort: Fixed stack overflow issues with iterative DFS implementation
    • cksum: Added comprehensive performance benchmarks
    • mkdir: Fixed stack overflow with deeply nested directories
  • Platform Support Enhancements

    • OpenBSD support for stdbuf and uptime
    • FreeBSD build and test improvements
    • Better cross-platform compatibility
  • hashsum Reorganization

    • Removed non-GNU binaries to fix interface divergence
    • Merged functionality into cksum for better GNU compatibility
    • Marked hashsum as deprecated in favor of cksum
  • Contributions: This release was made possible by the dedication of 17 contributors, including 4 newcomers.


GNU Test Suite Compatibility:

Result 0.3.0 0.4.0 Change 0.3.0 to 0.4.0 % Total 0.3.0 % Total 0.4.0 % Change 0.3.0 to 0.4.0
Pass 532 544 +12 83.91% 85.80% +1.89%
Skip 33 33 0 5.20% 5.20% +0.01%
Fail 68 56 -12 10.73% 8.83% -1.90%
Error 1 1 0 0.16% 0.16% 0%
Total 634 634 0

GNU testsuite evolution


Call to Action:

🌍 Help us translate - Contribute translations at Weblate
🚀 Sponsor us on GitHub to accelerate development: github.com/sponsors/uutils
🔗 Download the latest release: https://uutils.github.io

What's Changed

base64

cat

chown

cksum

  • Refactor cksum for incoming merge with hashsum, Fix behavior for --text and --untagged by @RenjiSann in #9024
  • Fix "cksum: --length 0 shouldn't fail for algorithms that don't support --length" by @RenjiSann in #9032
  • Add support for sha2, sha3 by @RenjiSann in #9035
  • Fix GNU cksum-c.sh and cksum-sha3.sh by @RenjiSann in #9063
  • add cksum performance benchmarks by @naoNao89 in #9075
  • fix(cksum): correct CRC32B implementation to match GNU cksum by @naoNao89 in #9026

comm

date

dd

du

factor

  • base benchmarking for single/multiple u64, u128, and >u128 by @asder8215 in #9182
  • use num_prime crate's u64 and u128 factorization methods to speed up the performance by @asder8215 in #9171

hashsum

install

ls

mkdir

od

printenv

printf

  • handle extremely large format widths gracefully to fix GNU test panic by @sylvestre in #9133

readlink

  • fix(readlink): emit GNU-style Invalid argument for non-symlinks by @karanabe in #9189

stdbuf

timeout

truncate

  • feat(truncate): allow negative size values for truncation by @mattsu2020 in #9129

tsort

  • use iterative dfs to prevent stack overflows by @Nekrolm in #8737
  • fix minimal cycle reporting and precise back-edge removal by @naoNao89 in #8786

uptime

uudoc

Documentation

CI & Build

Code Quality & Cleanup

Performance & Benchmarking

Version Management

Dependency Updates

  • be prescriptive on the codspeed-divan-compat version by @sylvestre in #9007
  • Bump linux-raw-sys from 0.11 to 0.12 by @cakebaker in #9019
  • chore(deps): update rust crate bstr to v1.12.1 by @renovate[bot] in #9038
  • chore(deps): update rust crate indicatif to v0.18.2 by @renovate[bot] in #9053
  • chore(deps): update rust crate hex-literal to v1.1.0 by @renovate[bot] in #9077
  • chore(deps): update rust crate clap to v4.5.51 by @renovate[bot] in #9079
  • chore(deps): update rust crate clap_complete to v4.5.60 by @renovate[bot] in #9087
  • chore(deps): update rust crate crc-fast to v1.6.0 by @renovate[bot] in #9095
  • chore(deps): update vmactions/freebsd-vm action to v1.2.5 by @renovate[bot] in #9121
  • chore(deps): update rust crate ctor to v0.6.1 by @renovate[bot] in #9130
  • chore(deps): update rust crate quote to v1.0.42 by @renovate[bot] in #9165
  • chore(deps): update reactivecircus/android-emulator-runner action to v2.35.0 by @renovate[bot] in #9169
  • chore(deps): update rust crate jiff to v0.2.16 by @renovate[bot] in #9175
  • chore(deps): update rust crate divan to v4.1.0 by @renovate[bot] in #9179
  • chore(deps): update rust crate crc-fast to v1.7.0 by @renovate[bot] in #9180
  • chore(deps): update vmactions/freebsd-vm action to v1.2.6 by @renovate[bot] in #9192
  • chore(deps): update rust crate parse_datetime to v0.13.2 by @renovate[bot] in #9207

New Contributors

Full Changelog: 0.3.0...0.4.0

Don't miss a new coreutils release

NewReleases is sending notifications on new releases.