Pembaruan ke GNU Coreutils, ditulis ulang dalam Rust

Rilis toolkit uutils coreutils 0.0.12 disajikan, di mana analog dari paket GNU Coreutils, yang ditulis ulang dalam bahasa Rust, sedang dikembangkan. Coreutils hadir dengan lebih dari seratus utilitas, termasuk sortir, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, dan ls. Pada saat yang sama, paket uutils findutils 0.3.0 dirilis dengan implementasi Rust dari utilitas dari set GNU Findutils (find, find, updateb dan xargs).

Alasan pembuatan proyek dan penggunaan bahasa Rust adalah keinginan untuk membuat implementasi alternatif lintas platform dari Coreutils dan Findutils, yang mampu berjalan antara lain pada platform Windows, Redox dan Fuchsia. Perbedaan penting lainnya antara uutils adalah ia didistribusikan di bawah Lisensi Permisif MIT, bukan lisensi copyleft GPL.

Saat ini, implementasi 88 utilitas telah sepenuhnya setara dengan GNU Coreutils. Kelemahan individu dicatat dalam 18 utilitas, termasuk cp, dd, date, df, install, ls, more, sort, split, tail dan test. Hanya utilitas stty yang masih belum diterapkan. Saat melewati rangkaian pengujian dari proyek GNU Coreutils, 214 pengujian berhasil dijalankan, tetapi analog Rust belum lulus 313 pengujian. Pada saat yang sama, intensitas pengembangan proyek meningkat secara nyata - 400-470 patch ditambahkan per bulan dari 20-50 pengembang, bukan 30-60 dari 3-8 pengembang pada tahun lalu.

Pembaruan ke GNU Coreutils, ditulis ulang dalam Rust

Di antara pencapaian terbaru, optimalisasi kinerja dicatat - dalam keadaan saat ini, banyak utilitas, seperti head and cut, secara signifikan lebih unggul dalam kinerja dibandingkan opsi dari GNU Coreutils. Cakupan rangkaian pengujian telah diperluas dari 55% menjadi 75% dari seluruh kode (80% adalah target yang memadai). Kode telah difaktorkan ulang untuk menyederhanakan pemeliharaan, misalnya, penanganan kesalahan telah disatukan dalam berbagai program, dan kode untuk bekerja dengan hak akses telah digabungkan menjadi chgrp dan chown. Banyak perubahan telah ditambahkan untuk meningkatkan kompatibilitas dengan GNU Coreutils.

Rencana di masa depan mencakup penerapan utilitas stty, upaya berkelanjutan untuk meningkatkan kompatibilitas dengan GNU Coreutils, menambahkan optimalisasi untuk mengurangi ukuran berkas yang dapat dijalankan, serta eksperimen lanjutan dalam menggunakan utilitas uutils di Debian dan Ubuntu dibandingkan GNU Coreutils dan GNU Findutils (salah satu pengembang utama uutils sebelumnya mengerjakan proyek untuk membangun Debian GNU/Linux menggunakan kompiler Clang). Selain itu, persiapan paket uutils-coreutils untuk macOS, eksperimen dengan penggantian GNU Coreutils dengan uutils coreutils di NixOS, niat untuk menggunakan uutils coreutils secara default di distribusi Apertis, dan adaptasi set uutils untuk Redox OS juga dicatat.

Sumber: opennet.ru

Tambah komentar