Adroddodd Sylvestre Ledru, sy'n adnabyddus am ei waith yn adeiladu Debian GNU/Linux gan ddefnyddio'r casglwr Clang, am arbrawf llwyddiannus gan ddefnyddio set amgen o gyfleustodau, coreutils, wedi'u hailysgrifennu yn yr iaith Rust. Mae Coreutils yn cynnwys cyfleustodau fel sort, cath, chmod, chown, chroot, cp, dyddiad, dd, adlais, enw gwesteiwr, id, ln ac ls. Ar gyfer y cam cyntaf o integreiddio i Debian o fersiwn Rust o coreutils, gosodwyd y nodau canlynol:
- Pecynnu dewis amgen Rust i coreutils ar gyfer Debian a Ubuntu.
- Cychwyn Debian gyda bwrdd gwaith GNOME gan ddefnyddio rust-coreutils.
- Gosod y 1000 o becynnau mwyaf poblogaidd o'r ystorfa.
- Adeiladu o ffynonellau cnewyllyn Firefox, LLVM/Clang a Linux mewn amgylchedd gyda rhwd-coreutils.
Ar Γ΄l creu mwy na 100 o glytiau ar gyfer Rust/coreutils, roeddem yn gallu cyflawni'r holl nodau a fwriadwyd yn llwyddiannus. Mae'r gwaith parhaus yn cynnwys gweithredu cyfleustodau ac opsiynau coll, gwella ansawdd ac unffurfiaeth y cod, datblygu'r gyfres brawf, a dileu damweiniau sy'n digwydd wrth redeg y gyfres brawf o GNU Coreutils (mae 141 o brofion allan o 613 yn rhedeg yn llwyddiannus hyd yn hyn ).
Wrth greu'r pecyn rhwd-coreutils, penderfynwyd peidio Γ’ disodli'r pecyn coreutils, ond i ddarparu'r gallu iddynt weithio ochr yn ochr. Mae opsiynau cyfleustodau yn yr iaith Rust wedi'u gosod yn / usr / lib / cargo / bin / ac yn cael eu gweithredu trwy ychwanegu'r cyfeiriadur hwn at y newidyn amgylchedd PATH. Cymhlethwyd creu'r pecyn rhwd-coreutils gan yr angen i lawrlwytho'r holl ddibyniaethau adeiladu i'r ystorfa, gan gynnwys Rust a phecynnau crΓ’t bach amrywiol.
Nid oedd creu delwedd gychwyn yn broblem, ond roedd angen llawer o waith i addasu'r pecynnau ar gyfer amgylchedd gyda rhwd-coreutils, gan fod llawer o sgriptiau Γ΄l-osod yn galw cyfleustodau o'r set coreutils. Achoswyd y nifer fwyaf o broblemau gan y diffyg opsiynau angenrheidiol, er enghraifft, nid oedd gan y cyfleustodau βcpβ yr opsiynau β--archiveβ a β--no-dereferenceβ, nid oedd βlnβ yn cefnogi'r opsiynau β- opsiwn cymharol", nid oedd mktemp yn cefnogi "-t", wrth gysoni "-fs", yn install - "--owner" a "-group". Cododd problemau eraill oherwydd gwahaniaethau mewn ymddygiad, er enghraifft, nid oedd y cyfleustodau gosod yn cefnogi nodi /dev/null fel ffeil mewnbwn, roedd gan mkdir yr opsiwn β--parentsβ yn lle β-parentβ, ac ati.
Wrth brofi'r cynulliad o seiliau cod mawr, ni chododd unrhyw broblemau mawr. Wrth adeiladu Firefox a LLVM/Clang, defnyddir sgriptiau python a cmake, felly nid oedd ailosod coreutils yn effeithio arnynt. Aeth adeiladu'r cnewyllyn Linux yn gymharol esmwyth, gyda dim ond dwy broblem yn codi: allbwn gwall wrth ddefnyddio chown gyda chyswllt symbolaidd a diffyg opsiwn β-nβ yn y cyfleustodau ln.
Ffynhonnell: opennet.ru