Rust-ով վերագրված GNU Coreutils-ի թարմացում

Ներկայացված է uutils coreutils 0.0.12 գործիքակազմի թողարկումը, որի շրջանակներում մշակվում է Rust լեզվով վերագրված GNU Coreutils փաթեթի անալոգը։ Coreutils-ը գալիս է հարյուրից ավելի կոմունալ ծրագրերով, այդ թվում՝ sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln և ls: Միևնույն ժամանակ, uutils findutils 0.3.0 փաթեթը թողարկվեց GNU Findutils փաթեթից (գտնել, տեղորոշել, թարմացնել b և xargs) Rust-ի ներդրմամբ:

Նախագծի ստեղծման և Rust լեզվի օգտագործման պատճառը Coreutils-ի և Findutils-ի միջպլատֆորմային այլընտրանքային ներդրում ստեղծելու ցանկությունն է, որը կարող է աշխատել նաև Windows, Redox և Fuchsia հարթակներում: Uutils-ի հետ մեկ այլ կարևոր տարբերություն այն է, որ այն բաշխվում է MIT թույլատրելի լիցենզիայի ներքո՝ GPL copyleft լիցենզիայի փոխարեն:

Ներկայումս 88 կոմունալ ծրագրերի իրականացումը լիովին հավասարեցված է GNU Coreutils-ին: Անհատական ​​թերությունները նշվում են 18 կոմունալ ծառայություններում, այդ թվում՝ cp, dd, date, df, install, ls, more, sort, split, tail and test: Միայն stty կոմունալն է մնում չիրականացված։ GNU Coreutils նախագծից թեստային փաթեթն անցնելիս հաջողությամբ ավարտվել է 214 թեստ, սակայն Rust անալոգը դեռ չի անցնում 313 թեստ։ Միևնույն ժամանակ, նախագծի մշակման ինտենսիվությունը նկատելիորեն աճել է. ամսական ավելացվում է 400-470 պատչ 20-50 ծրագրավորողների փոխարեն մեկ տարի առաջվա 30-60 ծրագրավորողների 3-8-ի փոխարեն:

Rust-ով վերագրված GNU Coreutils-ի թարմացում

Վերջին ձեռքբերումներից նշվում է կատարողականի օպտիմիզացումը. ներկա վիճակում շատ կոմունալ ծառայություններ, ինչպիսիք են գլուխը և կտրումը, զգալիորեն գերազանցում են GNU Coreutils-ի տարբերակները կատարողականով: Թեստային փաթեթի ծածկույթն ավելացել է ամբողջ ծածկագրի 55%-ից մինչև 75% (80%-ը բավարար թիրախ է): Կոդը վերամշակվել է՝ սպասարկումը պարզեցնելու համար, օրինակ՝ տարբեր ծրագրերում սխալների մշակումը միավորվել է, իսկ մուտքի իրավունքի հետ աշխատելու ծածկագիրը համակցվել է chgrp-ում և chown-ում: Բազմաթիվ փոփոխություններ են ավելացվել՝ բարելավելու համատեղելիությունը GNU Coreutils-ի հետ:

Ապագայի պլանները ներառում են stty օգտակար հավելվածի իրականացումը, շարունակական աշխատանքը՝ բարելավելու համատեղելիությունը GNU Coreutils-ի հետ, ավելացնելով օպտիմիզացումներ՝ գործարկվող ֆայլերի չափը նվազեցնելու համար և շարունակել փորձարկել uutils-ի օգտագործումը GNU Coreutils-ի և GNU Findutils-ի փոխարեն (հիմնականներից մեկը): uutils-ի մշակողները) Debian-ում և Ubuntu-ում: Նախկինում աշխատել է մի նախագծի վրա, որը տրամադրել է Debian GNU/Linux build՝ օգտագործելով Clang կոմպիլյատորը): Բացի այդ, macOS-ի համար uutils-coreutils փաթեթի պատրաստումը, NixOS-ում GNU Coreutils-ը uutils coreutils-ով փոխարինելու փորձը, Apertis բաշխման մեջ uutils coreutils լռելյայն օգտագործելու մտադրությունը և Redox OS-ի համար սահմանված uutils-ի հարմարեցումը չեն նշվում: .

Source: opennet.ru

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