È stata pubblicata la versione 0.7.0 del progetto uutils coreutils (Rust Coreutils). Sviluppa un analogo del pacchetto GNU Coreutils scritto in linguaggio Rust. coreutils include più di cento utilità, 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, tra le altre, in grado di funzionare su piattaforme Windows, Redox e Fuchsia.
Rust Coreutils è abilitato di default in Ubuntu 25.10 e viene utilizzato nelle distribuzioni AerynOS (Serpent OS) e Apertis (sviluppata da Collabora). A differenza di GNU Coreutils, l'implementazione di Rust è distribuita con la licenza permissiva MIT, anziché con la licenza copyleft GPL. Lo stesso team di sviluppatori sta anche sviluppando gli equivalenti basati su Rust delle suite di utility util-linux, diffutils, findutils, procps e acl, nonché i programmi sed e login.
Nella nuova versione di Rust Coreutils:
- Il tasso di compatibilità con la suite di benchmark GNU Coreutils è stato del 94.59% (in calo rispetto al 96.28%). 629 test sono stati superati, 7 in più rispetto alla versione precedente (622). 23 test sono stati falliti (in calo rispetto ai 16 precedenti) e 13 test sono stati saltati (in calo rispetto ai 7 precedenti). La diminuzione della compatibilità è dovuta all'aggiornamento della suite di benchmark alla versione GNU Coreutils 9.10, che ha aggiunto 19 nuovi test. In termini di test totali, Rust Coreutils ha superato 7 test in più rispetto alla versione precedente.
- I miglioramenti di compatibilità più significativi sono stati osservati per le utility date, fmt, kill, ptx, numfmt e cksum. Miglioramenti di compatibilità meno significativi sono stati osservati 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'utilità factor.
- Sono abilitate implementazioni più rapide di rustc-hash in ls, du, tsort, shuf, mv e foldhash in sort.
- Gestione ottimizzata dei caratteri ASCII nelle utilità unexpand ed expand, con conseguente aumento della velocità del 14% quando si utilizza la lettura bufferizzata.
- Le operazioni di allocazione della memoria nelle utility shuf, split, sort e du sono state ottimizzate, velocizzando du del 3-6% e shuf del 4%.
- La conversione dei numeri in stringhe nell'utilità nl è stata accelerata.
- La dimensione dei file eseguibili è stata ridotta e l'avvio delle utilità true e false è stato accelerato.
- Sono state corrette più di 20 utility, tra cui echo, date, sort, expr, hostname, id, comm, pr e dircolors, che si bloccavano quando non era possibile scrivere su stderr (reindirizzamento a /dev/full).
- In umask, mkdirat, mknod e altre utility, le chiamate libc non sicure sono state sostituite con binding sicuri dal pacchetto nix crate.
- L'opzione "--preserve-root" nell'utilità "rm" ora funziona correttamente quando si specificano collegamenti simbolici.
- Supporto migliorato per le piattaforme NetBSD, Windows e NixOS. Build migliorata per l'architettura PowerPC.
- Funzionalità estese, problemi risolti e opzioni mancanti aggiunte per le seguenti utilità: 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
