Byla vydána verze projektu uutils coreutils 0.7.0 (Rust Coreutils), která vyvíjí alternativu balíku GNU Coreutils napsanou v jazyce Rust. Coreutils zahrnuje více než sto utilit, včetně sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. Cílem projektu je vytvořit multiplatformní alternativní implementaci Coreutils, která bude schopna fungovat na platformách Windows, Redox a Fuchsia.
Rust Coreutils je ve výchozím nastavení aktivován v vydání Ubuntu 25.10 a je používán v distribucích AerynOS (Serpent OS) a Apertis (vyvíjeno společností Collabora). Na rozdíl od GNU Coreutils se implementace v Rustu distribuuje pod permisivní licencí MIT, namísto copyleft licence GPL. Dále stejný tým vývojářů vyvíjí psané na Rust analogy sad utilit util-linux, diffutils, findutils, procps a acl, stejně jako programů sed a login.
V nové verzi Rust Coreutils:
- Úroveň kompatibility s referenčním testovacím balíkem GNU Coreutils dosáhla 94,59 % (bylo 96,28 %). Bylo úspěšně provedených 629 testů, což je o 7 více než v předchozí verzi (622). 23 (bylo 16) testů skončilo neúspěšně a 13 (bylo 7) testů bylo přeskočeno. Snížení úrovně kompatibility je vysvětleno aktualizací testovacího balíku na verzi GNU Coreutils 9.10, která obsahuje 19 nových testů. Pokud počítáme celkový počet testů, Rust Coreutils překonal o 7 testů více než v minulém vydání.
- Nejvýznamnější zvýšení kompatibility bylo zaznamenáno pro utility date, fmt, kill, ptx, numfmt a cksum. Menší zlepšení kompatibility bylo zaznamenáno v utilitách cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, readlink, ln, kill, nproc, rm, env, sync, fmt, factor a wc.
- Bylo zajištěno udržování Rust knihovny num-prime, která je použita při testování v utilitě factor.
- Byly využity rychlejší implementace hash funkcí rustc-hash v ls, du, tsort, shuf, mv a foldhash v sort.
- Byla optimalizována práce s ASCII znaky v utilitách unexpand a expand, což vedlo k 14% zrychlení při vyrovnávacím čtení.
- Byly optimalizovány operace alokace paměti v utilitách shuf, split, sort a du, což vedlo k 3-6% zrychlení du a 4% zrychlení shuf.
- Bylo zrychleno převádění čísel na řetězce v utilitě nl.
- Byla zkrácena velikost spustitelných souborů a zrychleno spouštění utilit true a false.
- Ve více než 20 utilitách, včetně echo, date, sort, expr, hostname, id, comm, pr a dircolors, byly vyřešeny problémy s havarijním ukončením při nemožnosti zápisu do stderr (přesměrování do /dev/full).
- V umask, mkdirat, mknod a dalších utilitách byly nahrazeny nebezpečné volání libc zabezpečenými obálkami z crate balíku nix.
- Byla zajištěna správná funkčnost volby „—preserve-root“ v utilitě „rm“ při zadávání symbolických odkazů.
- Byla vylepšena podpora platforem NetBSD, Windows a NixOS. Vylepšena byla také kompilace pro architekturu PowerPC.
- Byly rozšířeny funkce, odstraněny problémy a přidány chybějící možnosti pro utility 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.
Zdroj: opennet.ru
