Sylvestre Ledru, i njohur për punën e tij në mbledhjen e Debian GNU/Linux duke përdorur kompilatorin Clang, njoftoi për realizimin me sukses të një eksperimenti për të angazhuar një grup alternativ të utiliteteve coreutils, të rishkruara në gjuhën Rust. Midis coreutils përfshihen utilitetet si sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln dhe ls. Për fazën e parë të integrimit në Debian, qëllimet për variantin e coreutils në gjuhën Rust ishin:
- Krijimi i një pakete me variantin alternativ të coreutils në gjuhën Rust për Debian dhe Ubuntu.
- Ngarko Debian me desktopin GNOME, duke përdorur rust-coreutils.
- Instalimi i 1000 паĐșĐ”Ńа mĂ« tĂ« njohura nga repositories.
- Konstruksioni nga kodet burimor të Firefox, LLVM/Clang dhe bërthamës Linux në një ambient me rust-coreutils.
Pas krijimit të më shumë se 100 patch-eve për Rust/coreutils, u arrit me sukses të gjitha objektivat e paracaktuara. Në punën e vazhdueshme, përmendet realizimi i utiliteteve dhe opsioneve të munguar, përmirësimi i cilësisë dhe homogjenitetit të kodit, zhvillimi i setit të testeve, si dhe eliminimi i dështimeve që ndodhin gjatë ekzekutimit të setit të testit nga GNU Coreutils (deri tani 141 teste nga 613 janë përfunduar me sukses).
Gjatë krijimit të paketës rust-coreutils, u vendos që të mos zëvendësohej paketa coreutils, por të sigurohej mundësia e funksionimit paralel. Variantet e utiliteteve në gjuhën Rust instalohen në /usr/lib/cargo/bin/ dhe aktivizohen duke shtuar këtë katalog në ndryshoren PATH. Krijimi i paketës rust-coreutils e vështirësoi nevoja për të ngarkuar në repository të gjitha varësitë ndihmëse të ndërtimit, përfshirë Rust dhe disa paketa të vogla crate.
Me krijimin e imazhit tĂ« ngarkuesit nuk pati probleme tĂ« veçanta, por adaptimi i paketave pĂ«r ambientin me rust-coreutils kĂ«rkoi punĂ« tĂ« madhe, pasi shumĂ« skripte post-install thĂ«rrasin utilitetet nga grupi coreutils. Numri mĂ« i madh i problemeve u shkaktua nga mungesa e opsioneve tĂ« nevojshme, pĂ«r shembull, utiliteti 'cp' nuk kishte opsionet 'âarchive' dhe 'âno-dereference', nĂ« 'ln' nuk kishte mbĂ«shtetje pĂ«r opsionin 'ârelative', nĂ« mktemp - 'ât', nĂ« sync '-fs', nĂ« install - 'âowner' dhe 'âgroup'. Problemet e tjera dolĂ«n pĂ«r shkak tĂ« diferencave nĂ« sjellje, pĂ«r shembull, utiliteti install nuk mbĂ«shteste pĂ«rcaktimin e /dev/null si njĂ« skedĂ« hyrĂ«se, nĂ« mkdir nĂ« vend tĂ« 'âparent' kishte opsionin 'âparents' etj.
Gjatë testimit të ndërtimit të bazave të mëdha të kodit nuk kishte probleme të mëdha. Gjatë ndërtimit të Firefox dhe LLVM/Clang përdoren skripte python dhe cmake, kështu që zëvendësimi i coreutils për to nuk ndikoi. Ndërtimi i bërthamës Linux kaloi relativisht pa probleme, dolën vetëm dy probleme: shfaqja e një gabimi gjatë përdorimit të chown me një lidhje simbolike dhe mungesa e opsionit '-n' në utilitetin ln.
Burimi: opennet.ru
