Päivitys GNU Coreutilsiin, kirjoitettu uudelleen Rustissa

Esitetään uutils coreutils 0.0.12 -työkalupakin julkaisu, jonka sisällä kehitetään Rust-kielellä uudelleen kirjoitetun GNU Coreutils -paketin analogia. Coreutils sisältää yli sata apuohjelmaa, mukaan lukien sort, cat, chmod, chown, chroot, cp, päivämäärä, dd, echo, isäntänimi, id, ln ja ls. Samaan aikaan uutils findutils 0.3.0 -paketti julkaistiin rustissa toteutettuna GNU Findutils -sarjan apuohjelmista (etsi, paikanna, päivitäb ja xargs).

Syynä projektin luomiseen ja Rust-kielen käyttöön on halu luoda vaihtoehtoinen Coreutils- ja Findutils-toteutus, joka pystyy toimimaan muun muassa Windows-, Redox- ja Fuchsia-alustoilla. Toinen tärkeä ero uutilien välillä on, että sitä jaetaan MIT Permissive License -lisenssillä GPL copyleft -lisenssin sijaan.

Tällä hetkellä 88 apuohjelman toteutus on täysin tasavertainen GNU Coreutilsin kanssa. Yksittäiset puutteet havaitaan 18 apuohjelmassa, mukaan lukien cp, dd, date, df, install, ls, more, sort, split, tail ja test. Vain stty-apuohjelma jää toteuttamatta. Kun testisarja läpäisee GNU Coreutils -projektin, 214 testiä suoritetaan onnistuneesti, mutta Rust-analogi ei läpäise vielä 313 testiä. Samalla projektikehityksen intensiteetti on noussut tuntuvasti - 400-470 kehittäjältä lisätään kuukaudessa 20-50 patchia vuoden takaisen 30-60 3-8 kehittäjän sijaan.

Päivitys GNU Coreutilsiin, kirjoitettu uudelleen Rustissa

Viimeisimpien saavutusten joukossa on huomioitu suorituskyvyn optimointi - nykyisessä tilassa monet apuohjelmat, kuten head and cut, ovat suorituskyvyltään huomattavasti parempia kuin GNU Coreutilsin vaihtoehdot. Testisarjan kattavuutta on laajennettu 55 %:sta 75 %:iin kaikesta koodista (80 % on riittävä tavoite). Koodia on muunnettu ylläpidon yksinkertaistamiseksi, esimerkiksi virheiden käsittelyä on yhtenäistetty eri ohjelmissa ja käyttöoikeuksilla työskentelevä koodi on yhdistetty chgrp:ksi ja chowniksi. Lukuisia muutoksia on lisätty yhteensopivuuden parantamiseksi GNU Coreutilsin kanssa.

Tulevaisuuden suunnitelmiin kuuluu stty-apuohjelman käyttöönotto, jatkuva työ GNU Coreutilsin yhteensopivuuden parantamiseksi, optimointien lisääminen suoritettavien tiedostojen koon pienentämiseksi sekä jatkuvat kokeilut uutils-apuohjelmien käyttämiseksi Debianissa ja Ubuntussa GNU Coreutilsin ja GNU:n sijaan. Findutils (yksi uutilien pääkehittäjistä työskenteli aiemmin projektin parissa Debian GNU/Linuxin rakentamiseksi Clang-kääntäjällä). Lisäksi huomioidaan uutils-coreutils-paketin valmistelu macOS:lle, kokeilut GNU Coreutilsin korvaamiseksi uutils coreutilsilla NixOS:ssä, aikomus käyttää uutils coreutilsia oletusarvoisesti Apertis-jakelussa sekä uutils-sarjan mukauttaminen Redox OS:lle.

Lähde: opennet.ru

Lisää kommentti