Lëshimi i uutils 0.11, një variant i GNU Coreutils në gjuhën Rust

Është publikuar dalja e projektit uutils coreutils 0.11.0 (Rust Coreutils), i cili zhvillon një analog të paketës GNU Coreutils, e shkruar në gjuhën Rust. Në përbërje të coreutils ndodhen më shumë se njëqind utilitete, duke përfshirë sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln dhe ls. Qëllimi i projektit është krijimi i një zbatimi alternativ të Coreutils që është ndër-platformor, përfshirë aftësinë për të funksionuar në platformat Windows, Redox dhe Fuchsia.

Rust Coreutils është i angazhuar si parazgjedhje në lëshimin e Ubuntu 25.10 dhe pjesërisht në Ubuntu 26.04. Rust Coreutils gjithashtu përdoret në shpërndarjet AerynOS (Serpent OS) dhe Apertis (i zhvilluar nga kompania Collabora). Ndryshe nga GNU Coreutils, zbatimi në Rust shpërndahen nën licencën e lejuar MIT, në vend të licencës copyleft GPL. Saktësisht, nga e njëjta ekip zhvillues janë duke u zhvilluar analoge të shkruara në Rust për setet e utiliteteve util-linux, diffutils, findutils, procps dhe acl, si dhe për programet sed dhe login.

Në versionin e ri të Rust Coreutils:

  • Niveli i përputhshmërisë me setin referues të testeve të GNU Coreutils arriti 95.33% (isha 94.44%). Testet e suksesshme ishin 653, që janë 8 më shumë se në versionin e kaluar (645). 22 teste përfunduan me dështim (isha 29), ndërsa 15 teste u anashkaluan (isha 15).
  • Është integruar një motor i ri për diagnostikimin e problemeve, i bazuar në bibliotekën ariadne dhe që nxjerr raporte të qarta për gabimet kur ekzekutohen utilitetet në terminal, me etiketimin e argumenteve të linjës së komandës që e shkaktuan problemin. Vizualizimi i gabimeve është përfshirë në utilitetet chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df dhe du. Për të çaktivizuar raportet diagnostikuese, është propozuar variabla e mjedisit UUTILS_DIAG.
  • Gjatë ndërtimit të lëshimeve, janë aktivizuar optimizimet e bazuara në rezultatet e profilizimit të kodit (PGO - Optimizim i udhëhequr nga profili), që lejojnë gjenerimin e kodit më të optimizuar bazuar në analizën e karakteristikave të ekzekutimit të programit. Sipas vlerësimit të zhvilluesve, rritja e performancës gjatë ekzekutimit të disa operacioneve arrin deri në 31%.
  • Është bërë optimizimi i performancës së utiliteteve cp (+32.93%), join (2.5 herë më i shpejtë se GNU për shkak të çaktivizimit të krahasimeve të tepërta të lokalitetit), od, ptx (+4%), nl, tail, expand, unexpand, numfmt dhe sort. Situatat e kryerjes së operacioneve që janë dukshëm më të ngadalta se në GNU Coreutils tani mbahen si gabime.
  • Janë eliminuar disa mospërputhje me GNU Coreutils në sjelljen e utiliteteve pr, numfmt, join, id, mkdir, fold, sort, stat, od dhe date.
  • Janë realizuar opsione specifike për GNU Coreutils: «uname -A», «uname —all-labeled», «cut -F», «cut —whitespace-delimited», «pr —columns», «pr —join-lines», «pr -f».
  • Në utilitatet mv, cp, rm, chmod, stdbuf është punuar për forcimin e sigurisë për të parandaluar shfaqjen e dobësive që shkaktohen nga gjendja e garës, e cila lejon ndryshimin e të dhënave në momentin pas verifikimit të saktësisë së informacionit, por deri në realizimin e operacionit me to, për shembull, ndërrimi i skedarit me një lidhje simbolike në momentin mes përfundimit të verifikimit dhe fillimit të realizimit të operacionit. Në kontekstin e përdorimit të utiliteteve cp, chmod dhe mv në skriptet sistemike, të cilat ekzekutohen me të drejtat root, dobësitë e tilla lejojnë kopjimin ose mbivendosjen e skedarëve të rastit.
  • Është punuar për të eliminuar ndërprerjet e papritura në utilitatet split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac, who.
  • Janë realizuar versione të utiliteteve kill dhe uptime për Windows.
  • Është ndalur përdorimi i paketicave byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (e fundit ishte kompromentuar), exacl dhe dns-lookup në favor të funksioneve nga bibliotekat std, rustix dhe windows-sys.
  • Në utilitetet ls dhe comm është shtuar mbështetje për veçoritë e lokalizimit «collation», duke lejuar përputhje duke marrë parasysh kuptimin e simboleve (për shembull, gjatë krahasimit mund të injorohet shenja e theksit).
  • Është përmirësuar funksionimi me simbole shumëbajtëshe në utilitatet nl dhe cut.

Po ashtu, mund të përmendet publikimi nga kompania Canonical i dy imazheve eksperimentale të kontejnerëve të gatshëm për zhvillim të aplikacioneve në gjuhën Rust, që përputhen me specifikimin Dev Container. Imazhi i parë përfshin Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (interpretuese për identifikimin e sjelljeve të pasigurt), cargo-auditable (audit të ndërtimeve), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh dhe curl. Imazhi i dytë, përveç kësaj, përmban paketa për zhvillimin në Ubuntu: git-buildpackage, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster