Diweddariad o'r GNU Coreutils wedi'i ailysgrifennu yn Rust

Mae rhyddhau'r pecyn cymorth uutils coreutils 0.0.12 yn cael ei gyflwyno, lle mae analog o'r pecyn GNU Coreutils, wedi'i ailysgrifennu yn yr iaith Rust, yn cael ei ddatblygu. Daw Coreutils gyda dros gant o gyfleustodau, gan gynnwys sort, cath, chmod, chown, chroot, cp, dyddiad, dd, adlais, enw gwesteiwr, id, ln, ac ls. Ar yr un pryd, rhyddhawyd y pecyn uutils findutils 0.3.0 gyda gweithrediad yn Rust o'r cyfleustodau o'r set GNU Findutils (darganfod, lleoli, diweddarub a xargs).

Y rheswm dros greu'r prosiect a defnyddio'r iaith Rust yw'r awydd i greu gweithrediad amgen traws-lwyfan o Coreutils a Findutils, sy'n gallu rhedeg ar lwyfannau Windows, Redox a Fuchsia, ymhlith eraill. Gwahaniaeth pwysig arall rhwng uutils yw ei fod yn cael ei ddosbarthu o dan Drwydded GaniatΓ‘u MIT, yn lle'r drwydded copileft GPL.

Ar hyn o bryd, mae gweithredu 88 o gyfleustodau wedi'u gwneud yn gwbl gyfartal Γ’ GNU Coreutils. Nodir diffygion unigol mewn 18 cyfleustodau, gan gynnwys cp, dd, dyddiad, df, gosod, ls, mwy, didoli, hollti, cynffon a phrawf. Dim ond y cyfleustodau stty sydd ar Γ΄l heb ei weithredu. Wrth basio'r gyfres brawf o brosiect GNU Coreutils, mae 214 o brofion yn cael eu gweithredu'n llwyddiannus, ond nid yw'r analog Rust yn pasio 313 o brofion eto. Ar yr un pryd, mae dwyster datblygiad y prosiect wedi cynyddu'n amlwg - mae 400-470 o glytiau'n cael eu hychwanegu bob mis gan 20-50 o ddatblygwyr yn lle 30-60 gan 3-8 o ddatblygwyr flwyddyn yn Γ΄l.

Diweddariad o'r GNU Coreutils wedi'i ailysgrifennu yn Rust

Ymhlith y cyflawniadau diweddaraf, nodir optimeiddio perfformiad - yn y cyflwr presennol, mae llawer o gyfleustodau, megis pen a thoriad, yn sylweddol uwch mewn perfformiad i'r opsiynau gan GNU Coreutils. Mae cwmpas y gyfres brawf wedi'i ehangu o 55% i 75% o'r holl god (mae 80% yn darged digonol). Mae'r cod wedi'i ail-ffactorio i symleiddio gwaith cynnal a chadw, er enghraifft, mae ymdrin Γ’ gwallau wedi'i uno mewn gwahanol raglenni, ac mae'r cod ar gyfer gweithio gyda hawliau mynediad wedi'i gyfuno'n chgrp a chown. Mae nifer o newidiadau wedi'u hychwanegu i wella cydnawsedd Γ’ GNU Coreutils.

Mae cynlluniau ar gyfer y dyfodol yn cynnwys gweithredu'r cyfleustodau stty, gwaith parhaus i wella cydnawsedd Γ’ GNU Coreutils, ychwanegu optimeiddiadau i leihau maint ffeiliau gweithredadwy, yn ogystal ag arbrofion parhaus ar ddefnyddio cyfleustodau uutils yn Debian a Ubuntu yn lle GNU Coreutils a GNU Findutils (bu un o brif ddatblygwyr uutils yn gweithio o'r blaen ar brosiect i adeiladu Debian GNU/Linux gan ddefnyddio'r casglwr Clang). Yn ogystal, wrth baratoi'r pecyn uutils-coreutils ar gyfer macOS, nodir arbrofion gyda disodli GNU Coreutils ag uutils coreutils yn NixOS, y bwriad i ddefnyddio uutils coreutils yn ddiofyn yn y dosbarthiad Apertis, ac addasu'r uutils a osodwyd ar gyfer Redox OS.

Ffynhonnell: opennet.ru

Ychwanegu sylw