Ažuriranje na GNU Coreutils, ponovno napisano u Rustu

Predstavljeno je izdanje alata uutils coreutils 0.0.12 u sklopu kojeg se razvija analog paketa GNU Coreutils, prepisan na jeziku Rust. Coreutils dolazi s preko sto uslužnih programa, uključujući sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln i ls. Istovremeno je objavljen paket uutils findutils 0.3.0 s implementacijom uslužnih programa iz skupa GNU Findutils (find, locate, updatedb i xargs) u Rust.

Razlog za stvaranje projekta i korištenje jezika Rust je želja za stvaranjem višeplatformske alternativne implementacije Coreutils i Findutils, sposobne za rad na Windows, Redox i Fuchsia platformama, među ostalima. Druga važna razlika između uutilsa je da se distribuira pod MIT Permissive License, umjesto pod GPL copyleft licencom.

Trenutačno je implementacija 88 uslužnih programa u potpunosti usklađena s GNU Coreutils. Pojedinačni nedostaci zabilježeni su u 18 uslužnih programa, uključujući cp, dd, date, df, install, ls, more, sort, split, tail i test. Samo uslužni program stty ostaje neprimijenjen. Prilikom prolaska paketa testova iz projekta GNU Coreutils, uspješno je izvršeno 214 testova, ali Rust analog još ne prolazi 313 testova. U isto vrijeme, intenzitet razvoja projekta je primjetno povećan - 400-470 zakrpa mjesečno se dodaje od 20-50 programera umjesto 30-60 od 3-8 programera prije godinu dana.

Ažuriranje na GNU Coreutils, ponovno napisano u Rustu

Među najnovijim dostignućima, primjećuje se optimizacija performansi - u trenutnom stanju, mnogi uslužni programi, kao što su head i cut, značajno su superiorniji u izvedbi od opcija iz GNU Coreutils. Pokrivenost skupa testova je proširena sa 55% na 75% cjelokupnog koda (80% je dovoljan cilj). Kod je refaktoriran kako bi se pojednostavilo održavanje, na primjer, rukovanje pogreškama je unificirano u različitim programima, a kod za rad s pravima pristupa kombiniran je u chgrp i chown. Dodane su brojne promjene kako bi se poboljšala kompatibilnost s GNU Coreutils.

Planovi za budućnost uključuju implementaciju uslužnog programa stty, nastavak rada na poboljšanju kompatibilnosti s GNU Coreutils, dodavanje optimizacija za smanjenje veličine izvršnih datoteka, kao i nastavak eksperimenata korištenja uslužnih programa uutils u Debianu i Ubuntuu umjesto GNU Coreutils i GNU Findutils (jedan od glavnih programera uutilsa koji je prethodno radio na projektu izgradnje Debian GNU/Linuxa koristeći Clang kompajler). Dodatno, navodi se priprema paketa uutils-coreutils za macOS, eksperimenti sa zamjenom GNU Coreutils s uutils coreutils u NixOS-u, namjera korištenja uutils coreutils prema zadanim postavkama u distribuciji Apertis te prilagodba skupa uutils za Redox OS.

Izvor: opennet.ru

Dodajte komentar