È stata pubblicata la versione 0.7.0 del progetto uutils coreutils (Rust Coreutils), che sviluppa un'alternativa al pacchetto GNU Coreutils, scritta in linguaggio Rust. Il pacchetto coreutils include oltre cento utility, tra cui sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln e ls. L'obiettivo del progetto è creare un'implementazione alternativa multipiattaforma di Coreutils, in grado di funzionare su piattaforme come Windows, Redox e Fuchsia.
Rust Coreutils è utilizzato di default nella versione di Ubuntu 25.10 ed è applicato nelle distribuzioni AerynOS (Serpent OS) e Apertis (sviluppato da Collabora). A differenza di GNU Coreutils, l'implementazione in Rust è distribuita sotto una licenza permissiva MIT, anziché sotto una licenza copyleft GPL. Inoltre, lo stesso team di sviluppatori sta sviluppando alternative scritte in Rust per i pacchetti util-linux, diffutils, findutils, procps e acl, così come per i programmi sed e login.
Nella nuova versione di Rust Coreutils:
- Il livello di compatibilità con il test suite di riferimento GNU Coreutils è stato del 94,59% (precedentemente 96,28%). Sono stati superati 629 test, sette in più rispetto alla versione precedente (622). Ventitré (precedentemente 16) test sono falliti, mentre 13 (precedentemente 7) test sono stati omessi. La diminuzione del livello di compatibilità è dovuta all'aggiornamento del test suite alla versione di rilascio di GNU Coreutils 9.10, che ha aggiunto 19 nuovi test. Considerando il numero totale di test, Rust Coreutils ha superato di sette test rispetto alla versione precedente.
- Il miglioramento più significativo della compatibilità è stato osservato per le utility date, fmt, kill, ptx, numfmt e cksum. Miglioramenti meno significativi della compatibilità sono stati registrati per le utility cut, tac, tail, tr, uniq, od, chroot, stat, mktemp, pr, readlink, ln, kill, nproc, rm, env, sync, fmt, factor e wc.
- È stato fornito supporto per la libreria Rust num-prime, utilizzata per i test nell'utility factor.
- Sono state utilizzate implementazioni più veloci degli hash rustc-hash in ls, du, tsort, shuf, mv e foldhash in sort.
- Ottimizzato il funzionamento con i caratteri ASCII nelle utility unexpand ed expand, che ha permesso di accelerare il lavoro del 14% durante la lettura in buffer.
- Ottimizzate le operazioni di allocazione della memoria nelle utility shuf, split, sort e du, con un'accelerazione di du del 3-6% e di shuf del 4%.
- Accelerata la conversione dei numeri in stringhe nell'utility nl.
- Ridotto il dimensionamento dei file eseguibili e accelerato l'avvio delle utility true e false.
- In oltre 20 utility, tra cui echo, date, sort, expr, hostname, id, comm, pr e dircolors, sono stati risolti problemi di arresto anomalo dovuti all'impossibilità di scrivere in stderr (rielaborazione su /dev/full).
- Nei comandi umask, mkdirat, mknod e in altre utility, sono state sostituite le chiamate libc non sicure con wrapper protetti dal pacchetto crate nix.
- Garantito il corretto funzionamento dell'opzione "--preserve-root" nell'utility "rm" quando vengono specificati link simbolici.
- Migliorato il supporto per le piattaforme NetBSD, Windows e NixOS. Migliorata la compilazione per l'architettura PowerPC.
- Sono state ampliate le funzionalità, risolti problemi e aggiunte opzioni mancanti per gli strumenti 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.
Fonte: opennet.ru
