Ĝisdatigo al GNU Coreutils, reverkita en Rust

Estas prezentita la eldono de la ilaro uutils coreutils 0.0.12, ene de kiu estas disvolvita analogo de la pako GNU Coreutils, reverkita en la Rust-lingvo. Coreutils venas kun pli ol cent iloj, inkluzive de ordigo, kato, chmod, chown, chroot, cp, dato, dd, echo, gastiga nomo, id, ln kaj ls. Samtempe, la pako uutils findutils 0.3.0 estis liberigita kun efektivigo en Rust de la utilecoj el la aro GNU Findutils (trovi, lokalizi, ĝisdatigitajb kaj xargs).

La kialo por krei la projekton kaj uzi la Rust-lingvon estas la deziro krei transplatforman alternativan efektivigon de Coreutils kaj Findutils, kapabla ruliĝi sur Vindozo, Redox kaj Fuchsia platformoj, inter aliaj. Alia grava diferenco inter uutils estas ke ĝi estas distribuita sub la MIT Permissive License, anstataŭ la GPL copyleft-licenco.

Nuntempe, la efektivigo de 88 iloj estis plene egaligita kun GNU Coreutils. Individuaj difektoj estas notitaj en 18 utilecoj, inkluzive de cp, dd, dato, df, instali, ls, pli, ordigi, disfendi, vosto kaj testo. Nur la stty ilo restas neefektivigata. Trapasinte la testan aron de la projekto GNU Coreutils, 214 testoj estas sukcese efektivigitaj, sed la Rust-analogo ankoraŭ ne trapasas 313 testojn. Samtempe, la intenseco de projekto-disvolviĝo rimarkinde pliiĝis - 400-470 diakiloj estas aldonitaj monate de 20-50 programistoj anstataŭ 30-60 de 3-8 programistoj antaŭ jaro.

Ĝisdatigo al GNU Coreutils, reverkita en Rust

Inter la plej novaj atingoj, oni rimarkas rendimentan optimumigon - en la nuna stato, multaj utilecoj, kiel kapo kaj tranĉo, estas signife superaj en rendimento al la elektoj de GNU Coreutils. Testsuita priraportado estis vastigita de 55% ĝis 75% de la tuta kodo (80% estas sufiĉa celo). La kodo estis refactorigita por simpligi prizorgadon, ekzemple, erartraktado estis unuigita en malsamaj programoj, kaj kodo por labori kun alirrajtoj estis kombinita en chgrp kaj chown. Multaj ŝanĝoj estis aldonitaj por plibonigi kongruon kun GNU Coreutils.

Planoj por la estonteco inkluzivas la efektivigon de la ilo stty, daŭra laboro por plibonigi kongruecon kun GNU Coreutils, aldonante optimumojn por redukti la grandecon de ruleblaj dosieroj, same kiel daŭrajn eksperimentojn pri uzado de uutils en Debian kaj Ubuntu anstataŭ GNU Coreutils kaj GNU. Findutils (unu el la ĉefaj programistoj de uutils antaŭe laboris pri projekto por konstrui Debian GNU/Linukso per la Clang-kompililo). Aldone, la preparado de la pako uutils-coreutils por macOS, eksperimentoj kun anstataŭigo de GNU Coreutils per uutils coreutils en NixOS, la intenco uzi uutils coreutils defaŭlte en la distribuo Apertis, kaj la adapto de la uutils agordita por Redox OS estas notitaj.

fonto: opennet.ru

Aldoni komenton