Rustis ümber kirjutatud GNU Coreutilsi värskendus

Esitletakse uutils coreutils 0.0.12 tööriistakomplekti väljalaset, mille raames arendatakse Rust keelde ümber kirjutatud GNU Coreutilsi paketi analoogi. Coreutilsil on üle saja utiliidi, sealhulgas sort, cat, chmod, chown, chroot, cp, kuupäev, dd, echo, hostname, id, ln ja ls. Samal ajal anti välja pakett uutils findutils 0.3.0 koos GNU Findutilsi komplekti kuuluvate utiliitide juurutamisega Rust'is (leida, asukoht, updatedb ja xargs).

Projekti loomise ja Rust keele kasutamise põhjuseks on soov luua Coreutilsi ja Findutilsi platvormideülene alternatiivne teostus, mis on võimeline töötama muuhulgas Windowsi, Redoxi ja Fuchsia platvormidel. Teine oluline erinevus uutilide vahel on see, et seda levitatakse MIT Permissive License, mitte GPL copyleft litsentsi alusel.

Praegu on 88 utiliidi juurutamine GNU Coreutilsiga täielikult võrdsustatud. Üksikud vead on märgitud 18 utiliidis, sealhulgas cp, dd, date, df, install, ls, more, sort, split, tail ja test. Rakendamata jääb ainult utiliit stty. GNU Coreutilsi projekti testkomplekti läbimisel sooritatakse edukalt 214 testi, kuid Rust analoog ei läbi veel 313 testi. Samas on märgatavalt kasvanud projektiarenduse intensiivsus - aastataguse 400-470 arendaja 20-50 asemel lisandub 30-60 arendajalt 3-8 plaastrit kuus.

Rustis ümber kirjutatud GNU Coreutilsi värskendus

Viimaste saavutuste hulgas on märgitud jõudluse optimeerimist - praeguses olekus on paljud utiliidid, näiteks pea ja lõikamine, jõudluses GNU Coreutilsi valikutest oluliselt paremad. Testkomplekti katvust on laiendatud 55%-lt 75%-le kogu koodist (80% on piisav siht). Kood on hoolduse lihtsustamiseks ümber kujundatud, näiteks on erinevates programmides ühtlustatud veakäsitlust ning kood juurdepääsuõigustega töötamiseks on ühendatud chgrp-ks ja chowniks. GNU Coreutilsiga ühilduvuse parandamiseks on lisatud arvukalt muudatusi.

Tulevikuplaanid hõlmavad utiliidi stty juurutamist, jätkuvat tööd GNU Coreutilsiga ühilduvuse parandamiseks, optimeerimiste lisamist käivitatavate failide suuruse vähendamiseks, samuti jätkuvaid katseid uutili utiliitide kasutamiseks Debianis ja Ubuntus GNU Coreutilsi ja GNU asemel. Findutils (üks uutilide peamisi arendajaid töötas varem Debian GNU/Linuxi ehitamise projektiga, kasutades kompilaatorit Clang). Lisaks märgitakse ära paketi uutils-coreutils ettevalmistamine macOS-i jaoks, katsed GNU Coreutilsi asendamiseks uutils coreutilsidega NixOS-is, kavatsus kasutada uutils coreutilsi vaikimisi Apertise distributsioonis ja Redox OS-i jaoks komplekti uutilste kohandamine.

Allikas: opennet.ru

Lisa kommentaar