Wydanie Rust Coreutils 0.6.0, które zwiększyło zgodność z GNU Coreutils z 87% do 96%

Opublikowano wydanie projektu uutils coreutils 0.6.0 (Rust Coreutils), rozwijającego analog pakietu GNU Coreutils, napisanego w języku Rust. W skład coreutils wchodzi ponad sto narzędzi, w tym sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Celem projektu jest stworzenie wieloplatformowej alternatywnej implementacji Coreutils, między innymi zdolnej do działania na platformach Windows, Redox i Fuchsia.

Rust Coreutils jest używany domyślnie w wydaniu Ubuntu 25.10 i stosowany w dystrybucjach AerynOS (Serpent OS) i Apertis (rozwijane przez firmę Collabora). W przeciwieństwie do GNU Coreutils, implementacja w Rust jest dystrybuowana na podstawie zezwolenia MIT, a nie licencji copyleft GPL. Dodatkowo ta sama drużyna programistów rozwija pisane w Rust odpowiedniki zestawów narzędzi util-linux, diffutils, findutils, procps i acl, a także programów sed i login.

W nowej wersji Rust Coreutils:

  • Osiągnięto poziom zgodności z referencyjnym zestawem testów GNU Coreutils na poziomie 96,28% (wcześniej 87,75%). Pomyślnie wykonano 622 testy, co stanowi wzrost o 56 w porównaniu do poprzedniej wersji (566). 16 (wcześniej 55) testów zakończyło się niepowodzeniem, a 7 (wcześniej 23) testów zostało pominiętych. Największy wzrost zgodności odnotowano dla narzędzi sort, ls, date, cksum i tail.
  • Z narzędzi date, sort, locale.rs i innych usunięto kod, w którym używano słowa kluczowego „unsafe”.
  • Odwołania do standardowej biblioteki libc zostały zastąpione równoważnymi bezpiecznymi wywołaniami dostarczanymi przez pakiet nix.
  • Udoskonalono obsługę błędów, wykluczono awaryjne zakończenia przy zapisywaniu w /dev/full.
  • W narzędziu date wprowadzono lokalizację nazw miesięcy i dni, uwzględniającą ICU. Zapewnione zostało formatowanie godzin i kalendarza z uwzględnieniem lokalizacji.
  • W narzędziu sort zapewniono sortowanie liczb z separatorami tysięcy i wprowadzono obsługę parametrów +POS/-POS.
  • Do narzędzia join dodano wsparcie dla właściwości lokalnych „collation”, co pozwala na porównania z uwzględnieniem znaczenia znaków (np. podczas porównywania może być pomijany znak diakrytyczny).
  • Przeprowadzono optymalizację wydajności narzędzi base32, base64, basenc i df.
  • W narzędziu uniq zmniejszono zużycie pamięci podczas pracy bez uwzględnienia wielkości liter.
  • W narzędziu shuf zoptymalizowano numeryczne wyjście i dodano opcję „—random-seed”.
  • W tsort wykluczono ładowanie wszystkich danych wejściowych do pamięci.
  • W narzędziu tail dodano flagę „—debug”.
  • W narzędziu chmod rozwiązano problemy z rekurencyjnym wykonywaniem operacji i dodano opcję „—preserve-root”.
  • Na systemach podobnych do Unix wzmocniono bezpieczeństwo podczas przeszukiwania zawartości katalogów.
  • Do narzędzi ls, id, mkdir, mkfifo i mknod dodano wsparcie dla mechanizmu mmandatowego kontroli dostępu SMACK.
  • Do systemu ciągłej integracji dodano kontrolę kompilacji na systemach 64-bitowych RISC-V z biblioteką musl.
  • Udoskonalono działanie w systemie Windows z wykorzystaniem Cygwina.
  • Rozszerzono funkcjonalność, usunięto problemy i dodano brakujące opcje dla narzędzi arch, base64, basename, cat, chgrp, chmod, chroot, cksum, comm, cp, csplit, date, dd, df, dir, dirname, du, echo, env, expand, expr, fmt, fold, groups, hashsum, head, hostid, id, install, join, kill, ln, logname, ls, mkdir, mkfifo, mknod, mktemp, more, mv, nice, nl, nohup, nproc, numfmt, pr, printenv, printf, ptx, readlink, rm, rmdir, runcon, seq, shred, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, tee, test, timeout, touch, truncate, tsort, uname, unexpand, uniq, uptime, users, wc, yes, ucore, uucore, uudoc.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster