Aktualizácia na GNU Coreutils, prepísaná do jazyka Rust

Predstavuje sa vydanie sady nástrojov uutils coreutils 0.0.12, v rámci ktorej sa vyvíja analóg GNU Coreutils prepísaný do jazyka Rust. Coreutils prichádza s viac ako stovkou nástrojov vrátane sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln a ls. V rovnakom čase bol vydaný balík uutils findutils 0.3.0 s implementáciou nástrojov zo sady GNU Findutils (find, locate, updatedb a xargs) v Ruste.

Dôvodom vytvorenia projektu a použitia jazyka Rust je túžba vytvoriť multiplatformovú alternatívnu implementáciu Coreutils a Findutils, schopnú bežať okrem iného na platformách Windows, Redox a Fuchsia. Ďalším dôležitým rozdielom medzi uutilmi je, že je distribuovaný pod licenciou MIT Permissive License, namiesto licencie GPL copyleft.

V súčasnosti je implementácia 88 utilít plne zosúladená s GNU Coreutils. Jednotlivé chyby sú zaznamenané v 18 nástrojoch vrátane cp, dd, date, df, install, ls, more, sort, split, tail a test. Len nástroj stty zostáva neimplementovaný. Pri absolvovaní testovacej sady z projektu GNU Coreutils sa úspešne vykoná 214 testov, ale analóg Rust ešte neprešiel 313 testami. Zároveň sa citeľne zvýšila intenzita vývoja projektu – mesačne pribudne 400-470 záplat od 20-50 vývojárov namiesto 30-60 od 3-8 vývojárov pred rokom.

Aktualizácia na GNU Coreutils, prepísaná do jazyka Rust

Medzi najnovšími úspechmi je zaznamenaná optimalizácia výkonu - v súčasnom stave sú mnohé nástroje, ako napríklad head a cut, výrazne lepšie ako možnosti od GNU Coreutils. Pokrytie testovacej sady sa rozšírilo z 55 % na 75 % celého kódu (80 % je dostatočný cieľ). Kód bol prerobený, aby sa zjednodušila údržba, napríklad sa zjednotilo spracovanie chýb v rôznych programoch a kód pre prácu s prístupovými právami sa spojil do chgrp a chown. Na zlepšenie kompatibility s GNU Coreutils bolo pridaných množstvo zmien.

Plány do budúcnosti zahŕňajú implementáciu nástroja stty, pokračujúcu prácu na zlepšení kompatibility s GNU Coreutils, pridanie optimalizácií na zníženie veľkosti spustiteľných súborov, ako aj pokračujúce experimenty s používaním nástrojov uutils v Debiane a Ubuntu namiesto GNU Coreutils a GNU. Findutils (jeden z hlavných vývojárov uutils predtým pracoval na projekte zostavenia Debian GNU/Linux pomocou kompilátora Clang). Okrem toho sa zaznamenala príprava balíka uutils-coreutils pre macOS, experimenty s nahradením GNU Coreutils uutils coreutils v NixOS, zámer štandardne používať uutils coreutils v distribúcii Apertis a prispôsobenie sady uutils pre Redox OS.

Zdroj: opennet.ru

Pridať komentár