Wydanie uutils 0.7, wersji GNU Coreutils w języku Rust

Opublikowano wydanie projektu uutils coreutils 0.7.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 międzyplatformowej alternatywnej implementacji Coreutils, między innymi zdolnej do pracy 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:

  • Poziom zgodności z odniesieniowym zestawem testowym GNU Coreutils wyniósł 94,59% (było 96,28%). Z powodzeniem wykonano 629 testów, co jest o 7 więcej niż w poprzedniej wersji (622). 23 (było 16) testy zakończyły się niepowodzeniem, a 13 (było 7) testów zostało pominiętych. Spadek poziomu zgodności tłumaczyć można aktualizacją zestawu testowego do stanu wydania GNU Coreutils 9.10, w którym dodano 19 nowych testów. Jeśli brać pod uwagę łączną liczbę testów, to w Rust Coreutils zapewniono pomyślne zakończenie o 7 testów więcej niż w poprzednim wydaniu.
  • Największy wzrost zgodności odnotowano dla narzędzi date, fmt, kill, ptx, numfmt i cksum. Mniej znaczące poprawki zgodności zostały zauważone w narzędziach cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, readlink, ln, kill, nproc, rm, env, sync, fmt, factor i wc.
  • Zapewniło to wsparcie dla biblioteki Rust num-prime, stosowanej do testowania w narzędziu factor.
  • Wykorzystano szybsze implementacje hashy rustc-hash w ls, du, tsort, shuf, mv, i foldhash w sort.
  • Optymalizację pracy z symbolami ASCII w narzędziach unexpand i expand, co pozwoliło na 14% przyspieszenie pracy przy buforowanym odczycie.
  • Zoptymalizowane operacje alokacji pamięci w narzędziach shuf, split, sort i du, co przyspieszyło działanie du o 3–6% oraz shuf o 4%.
  • Przyspieszono konwersję liczb na ciągi w narzędziu nl.
  • Zmniejszono rozmiar plików wykonywalnych i przyspieszono uruchamianie narzędzi true i false.
  • W ponad 20 narzędziach, w tym echo, date, sort, expr, hostname, id, comm, pr i dircolors, rozwiązano problemy z awaryjnym zamykaniem w przypadku braku możliwości zapisu w stderr (przekierowanie do /dev/full).
  • W umask, mkdirat, mknod i innych narzędziach niebezpieczne wywołania libc zostały zastąpione bezpiecznymi opakowaniami z pakietu crate nix.
  • Zapewniona poprawna obsługa opcji „—preserve-root” w narzędziu „rm” przy wskazywaniu linków symbolicznych.
  • Poprawiono wsparcie dla platform NetBSD, Windows i NixOS. Udoskonalono kompilację dla architektury PowerPC.
  • Rozszerzono możliwości, rozwiązano problemy i dodano brakujące opcje dla narzędzi cat, cksum, chroot, comm, cp, csplit, cut, date, dd, df, dircolors, du, echo, env, expand, expr, factor, false, fmt, fold, hostname, id, install, kill, ln, ls, mktemp, mknod, mv, nl, nproc, numfmt, od, paste, pr, printfm, ptx, readlink, rm, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, test, tr, true, tsort, unexpand, uniq, uptime, vdir, wc, whoami.
  • Ź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