Ažuriranje varijante GNU Coreutils, prepisane na Rust jeziku

Predstavljen je izvod alata uutils coreutils 0.0.12, u okviru kojeg se razvija analog paketa GNU Coreutils, prepisan na jeziku Rust. U sastav coreutils ulazi više od stotinu alata, 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 sa implementacijom na jeziku Rust alata iz skupa GNU Findutils (find, locate, updatedb i xargs).

Kao razlog za stvaranje projekta i korišćenje jezika Rust navodi se želja da se stvori cross-platformska alternativna implementacija Coreutils i Findutils koja može raditi, između ostalog, na platformama Windows, Redox i Fuchsia. Još jedna važna razlika uutils je distribucija pod permisivnom licencom MIT, umesto copyleft licence GPL.

Trenutno je potpuno dovedena do pariteta sa GNU Coreutils implementacija 88 alata. Određene nedostatke beleže se u 18 alata, uključujući cp, dd, date, df, install, ls, more, sort, split, tail i test. Samo alat stty ostaje nerealizovan. Tokom prolaska testnog skupa projekta GNU Coreutils uspešno se izvršava 214 testova, dok 313 testova analog na Rust još ne prolazi. Pri tome je intenzivnost razvoja projekta značajno povećana — mesečno se dodaje 400-470 izmena od 20-50 programera umesto 30-60 od 3-8 programera pre godinu dana.

Ažuriranje varijante GNU Coreutils, prepisane na Rust jeziku

Iz poslednjih postignuća ističe se optimizacija performansi — u trenutnom stanju mnogi alati, kao što su head i cut, značajno nadmašuju po performansama varijante iz GNU Coreutils. Pokrivenost testnim skupom proširena je sa 55% na 75% od celog koda (sufficient goal is 80%). Obavljen je refaktoring koda radi pojednostavljenja održavanja, na primer, unifikovana je obrada grešaka u različitim programima, a u chgrp i chown je spojen kod za rad sa pravima pristupa. Dodani su brojni izmenjeni kako bi se poboljšala kompatibilnost sa GNU Coreutils.

V načrtih za prihodnost omenjamo izvajanje orodja stty, nadaljevanje dela na izboljšanju združljivosti z GNU Coreutils, dodajanje optimizacij za zmanjšanje velikosti izvršnih datotek ter nadaljevanje eksperimentov z uporabo orodij uutils namesto GNU Coreutils in GNU Findutils v Debianu in Ubuntuju (eden od glavnih razvijalcev uutils je prej delal na projektu za zagotavljanje gradnje Debian GNU/Linux z uporabo prevajalnika Clang). Dodatno omenjamo pripravo paketa uutils-coreutils za macOS, eksperimentiranje z zamenjavo GNU Coreutils z uutils coreutils v NixOS-u, namen uporabiti uutils coreutils kot privzeto v distribuciji Apertis ter prilagoditev niza uutils za Redox OS.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster