Rust дээр дахин бичсэн GNU Coreutils-ийн шинэчлэлт

Rust хэлээр дахин бичсэн GNU Coreutils багцын аналогийг боловсруулж байгаа uutils coreutils 0.0.12 хэрэгслийн иж бүрдлийг танилцуулж байна. Coreutils нь sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls зэрэг зуу гаруй хэрэгслүүдтэй ирдэг. Үүний зэрэгцээ uutils findutils 0.3.0 багцыг GNU Findutils багцаас (хайх, байршуулах, updatedb болон xargs) хэрэглэгдэх хэрэгслүүдийг Rust-д хэрэгжүүлснээр гарсан.

Төслийг бий болгож, Rust хэлийг ашиглах болсон шалтгаан нь Windows, Redox, Fuchsia платформууд дээр ажиллах боломжтой Coreutils болон Findutils-ийн платформ хоорондын хувилбарыг бий болгох хүсэл юм. Uutils-ийн өөр нэг чухал ялгаа нь GPL copyleft лицензийн оронд MIT Permissive License-ийн дагуу тараагддаг явдал юм.

Одоогийн байдлаар 88 хэрэгслийн хэрэгжилт GNU Coreutils-тэй бүрэн нийцэж байна. cp, dd, date, df, install, ls, more, sort, split, tail and test зэрэг 18 хэрэгсэлд тус тусын алдааг тэмдэглэсэн. Зөвхөн 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-тэй нийцтэй байдлыг сайжруулах ажлыг үргэлжлүүлэх, гүйцэтгэгдэх файлуудын хэмжээг багасгах оновчлолыг нэмэх, мөн GNU Coreutils болон GNU-ийн оронд Debian, Ubuntu-д uutils хэрэгслийг ашиглах туршилтыг үргэлжлүүлэх зэрэг багтана. Findutils (uutils-ийн гол хөгжүүлэгчдийн нэг нь өмнө нь Clang хөрвүүлэгч ашиглан Debian GNU/Linux бүтээх төсөл дээр ажиллаж байсан). Нэмж дурдахад, macOS-д зориулсан uutils-coreutils багцыг бэлтгэх, NixOS дахь GNU Coreutils-ийг uutils coreutils-ээр солих туршилт, Apertis түгээлтэд uutils coreutils-ийг анхдагчаар ашиглах зорилго, Redox OS-д тохируулсан uutils-ийн дасан зохицох зэргийг тэмдэглэв.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх