Ngadaptasi Debian kanggo nggunakake implementasine Rust saka coreutils

Sylvestre Ledru, sing dikenal kanthi karya mbangun Debian GNU/Linux nggunakake kompiler Clang, nglaporake eksperimen sing sukses nggunakake utilitas alternatif, coreutils, ditulis ulang ing basa Rust. Coreutils kalebu utilitas kayata sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln lan ls. Kanggo tahap pisanan integrasi menyang Debian saka versi Rust saka coreutils, tujuan ing ngisor iki disetel:

  • Paket alternatif Rust kanggo coreutils kanggo Debian lan Ubuntu.
  • Booting Debian nganggo desktop GNOME nggunakake rust-coreutils.
  • Nginstal 1000 paket paling populer saka repositori.
  • Mbangun saka Firefox, LLVM / Clang lan sumber kernel Linux ing lingkungan karo rust-coreutils.

Sawise nggawe luwih saka 100 patch kanggo Rust / coreutils, kita bisa nggayuh kabeh tujuan sing dituju. Karya sing isih ditindakake kalebu implementasine utilitas lan opsi sing ilang, ningkatake kualitas lan keseragaman kode, ngembangake suite test, lan ngilangi kacilakan sing kedadeyan nalika nglakokake test suite saka GNU Coreutils (141 tes saka 613 wis mlaku kanthi sukses nganti saiki. ).

Nalika nggawe paket teyeng-coreutils, iki mutusakΓ© ora ngganti paket coreutils, nanging kanggo nyedhiyani kemampuan kanggo bisa ing podo karo. Opsi utilitas ing basa Rust diinstal ing / usr / lib / cargo / bin / lan diaktifake kanthi nambahake direktori iki menyang variabel lingkungan PATH. Nggawe paket rust-coreutils rumit amarga kudu ndownload kabeh dependensi mbangun menyang repositori, kalebu Rust lan macem-macem paket peti cilik.

Nggawe gambar boot ora dadi masalah, nanging adaptasi paket kanggo lingkungan karo rust-coreutils mbutuhake akeh karya, amarga akeh skrip pasca-instal nelpon keperluan saka set coreutils. Jumlah masalah paling gedhe disebabake kekurangan opsi sing dibutuhake, contone, utilitas "cp" ora duwe opsi "--archive" lan "--no-dereference", "ln" ora ndhukung "- relatif", mktemp ora ndhukung "-t", ing sink "-fs", ing nginstal - "--owner" lan "-group". Masalah liyane muncul amarga beda prilaku, contone, utilitas nginstal ora ndhukung nemtokake / dev / null minangka file input, mkdir duwe pilihan "--parents" tinimbang "-parent", etc.

Nalika nyoba ngumpulake basis kode gedhe, ora ana masalah gedhe. Nalika mbangun Firefox lan LLVM / Clang, skrip python lan cmake digunakake, mula ngganti coreutils ora mengaruhi. Mbangun kernel Linux mlaku kanthi lancar, mung ana rong masalah: output kesalahan nalika nggunakake chown kanthi pranala simbolis lan ora ana pilihan "-n" ing sarana ln.

Source: opennet.ru

Add a comment