Atnaujinimas į GNU Coreutils, perrašytas į Rust

Pristatomas uutils coreutils 0.0.12 įrankių rinkinio leidimas, kuriame kuriamas GNU Coreutils paketo analogas, perrašytas Rust kalba. „Coreutils“ yra su daugiau nei šimtu paslaugų, įskaitant „sort“, „cat“, „chmod“, „chown“, „chroot“, „cp“, „data“, „dd“, „echo“, „hostname“, „id“, „ln“ ir „ls“. Tuo pačiu metu buvo išleistas uutils findutils 0.3.0 paketas, kuriame Rust buvo įdiegtos GNU Findutils rinkinio komunalinės paslaugos (rasti, rasti, atnaujinti ir xargs).

Projekto sukūrimo ir Rust kalbos naudojimo priežastis yra noras sukurti kelių platformų alternatyvų Coreutils ir Findutils įgyvendinimą, galintį veikti Windows, Redox ir Fuchsia platformose, be kita ko. Kitas svarbus skirtumas tarp uutils yra tas, kad jis platinamas pagal MIT Permissive License, o ne GPL copyleft licenciją.

Šiuo metu 88 paslaugų diegimas yra visiškai suderintas su GNU Coreutils. Atskiri trūkumai pastebimi 18 komunalinių paslaugų, įskaitant cp, dd, data, df, install, ls, more, rūšiavimą, padalijimą, uodegą ir testavimą. Liko neįgyvendinta tik stty programa. Išlaikius testų rinkinį iš GNU Coreutils projekto, sėkmingai atliekama 214 testų, tačiau „Rust“ analogas dar neišlaiko 313 testų. Tuo pačiu metu pastebimai išaugo projektų kūrimo intensyvumas – per mėnesį iš 400-470 kūrėjų pridedama 20-50 pataisų vietoj 30-60 iš 3-8 kūrėjų prieš metus.

Atnaujinimas į GNU Coreutils, perrašytas į Rust

Tarp naujausių laimėjimų pastebimas našumo optimizavimas – dabartinėje būsenoje daugelis paslaugų, tokių kaip „head and cut“, yra žymiai pranašesnės už „GNU Coreutils“ parinktis. Bandymo rinkinio aprėptis buvo išplėsta nuo 55% iki 75% viso kodo (80% yra pakankamas tikslas). Kodas buvo pertvarkytas siekiant supaprastinti priežiūrą, pavyzdžiui, klaidų tvarkymas buvo suvienodintas įvairiose programose, o darbo su prieigos teisėmis kodas sujungtas į chgrp ir chown. Buvo pridėta daug pakeitimų, siekiant pagerinti suderinamumą su GNU Coreutils.

Ateities planai apima stty paslaugų diegimą, tęstinį darbą gerinant suderinamumą su GNU Coreutils, optimizacijų pridėjimą, siekiant sumažinti vykdomųjų failų dydį, taip pat nuolatinius eksperimentus, kaip naudoti uutils paslaugų programas Debian ir Ubuntu, o ne GNU Coreutils ir GNU. Findutils (vienas iš pagrindinių uutilų kūrėjų anksčiau dirbo prie projekto, skirto Debian GNU/Linux kurti naudojant Clang kompiliatorių). Be to, atkreipiamas dėmesys į paketo uutils-coreutils paruošimą, skirtą MacOS, eksperimentus pakeičiant GNU Coreutils į uutils coreutils sistemoje NixOS, ketinimą naudoti uutils coreutils pagal nutylėjimą Apertis paskirstyme ir rinkinio uutils pritaikymą Redox OS.

Šaltinis: opennet.ru

Добавить комментарий