Posodobitev na GNU Coreutils, prepisana v Rust

Predstavljena je izdaja kompleta orodij uutils coreutils 0.0.12, v okviru katerega se razvija analog paketa GNU Coreutils, prepisan v jeziku Rust. Coreutils ima več kot sto pripomočkov, vključno z sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln in ls. Istočasno je bil izdan paket uutils findutils 0.3.0 z implementacijo v Rust pripomočkov iz nabora GNU Findutils (find, locate, updatedb in xargs).

Razlog za ustvarjanje projekta in uporabo jezika Rust je želja po ustvarjanju večplatformske alternativne izvedbe Coreutils in Findutils, ki bi med drugim lahko delovala na platformah Windows, Redox in Fuchsia. Druga pomembna razlika med uutils je, da se distribuira pod dovoljeno licenco MIT, namesto pod licenco GPL copyleft.

Trenutno je implementacija 88 pripomočkov v celoti usklajena z GNU Coreutils. Posamezne napake so opažene v 18 pripomočkih, vključno s cp, dd, date, df, install, ls, more, sort, split, tail in test. Samo pripomoček stty ostaja neizveden. Pri prehodu nabora testov iz projekta GNU Coreutils je uspešno izvedenih 214 testov, vendar analog Rust še ne opravi 313 testov. Hkrati se je opazno povečala intenzivnost razvoja projekta - 400-470 razvijalcev doda 20-50 popravkov na mesec namesto 30-60 3-8 razvijalcev pred letom dni.

Posodobitev na GNU Coreutils, prepisana v Rust

Med najnovejšimi dosežki je treba opozoriti na optimizacijo zmogljivosti - v trenutnem stanju so številni pripomočki, kot sta glava in rez, bistveno boljši od možnosti iz GNU Coreutils. Pokritost zbirke testov je bila razširjena s 55 % na 75 % vse kode (80 % je zadosten cilj). Koda je bila predelana za poenostavitev vzdrževanja, na primer obravnavanje napak je bilo poenoteno v različnih programih, koda za delo s pravicami dostopa pa je bila združena v chgrp in chown. Dodane so bile številne spremembe za izboljšanje združljivosti z GNU Coreutils.

Načrti za prihodnost vključujejo implementacijo pripomočka stty, nadaljnje delo za izboljšanje združljivosti z GNU Coreutils, dodajanje optimizacij za zmanjšanje velikosti izvedljivih datotek, pa tudi nadaljnje poskuse uporabe pripomočkov uutils v Debianu in Ubuntuju namesto GNU Coreutils in GNU Findutils (eden od glavnih razvijalcev uutils je prej delal na projektu za gradnjo Debian GNU/Linux z uporabo prevajalnika Clang). Poleg tega so omenjeni priprava paketa uutils-coreutils za macOS, eksperimenti z zamenjavo GNU Coreutils z uutils coreutils v NixOS, namen privzete uporabe uutils coreutils v distribuciji Apertis in prilagoditev nabora uutils za Redox OS.

Vir: opennet.ru

Dodaj komentar