Ενημέρωση του GNU Coreutils που γράφτηκε ξανά στο Rust

Παρουσιάζεται η έκδοση της εργαλειοθήκης uutils coreutils 0.0.12, εντός της οποίας αναπτύσσεται ένα ανάλογο του πακέτου GNU Coreutils, γραμμένο ξανά στη γλώσσα Rust. Το Coreutils συνοδεύεται από περισσότερα από εκατό βοηθητικά προγράμματα, όπως sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln και ls. Ταυτόχρονα κυκλοφόρησε το πακέτο uutils findutils 0.3.0 με υλοποίηση στο Rust των βοηθητικών προγραμμάτων από το σύνολο GNU Findutils (find, locate, updatedb και xargs).

Ο λόγος για τη δημιουργία του έργου και τη χρήση της γλώσσας Rust είναι η επιθυμία να δημιουργηθεί μια εναλλακτική υλοποίηση των Coreutils και Findutils σε πολλαπλές πλατφόρμες, ικανή να εκτελείται μεταξύ άλλων σε πλατφόρμες Windows, Redox και Fuchsia. Μια άλλη σημαντική διαφορά μεταξύ των uutils είναι ότι διανέμεται υπό την άδεια MIT Permissive License, αντί της άδειας GPL copyleft.

Επί του παρόντος, η υλοποίηση 88 βοηθητικών προγραμμάτων έχει εξισωθεί πλήρως με το GNU Coreutils. Μεμονωμένα ελαττώματα σημειώνονται σε 18 βοηθητικά προγράμματα, συμπεριλαμβανομένων των cp, dd, date, df, install, ls, more, sort, split, tail και test. Μόνο το βοηθητικό πρόγραμμα stty παραμένει ανεφάρμοστο. Κατά την επιτυχία της σουίτας δοκιμών από το έργο GNU Coreutils, 214 δοκιμές εκτελούνται με επιτυχία, αλλά το ανάλογο Rust δεν έχει ακόμη περάσει 313 δοκιμές. Ταυτόχρονα, η ένταση της ανάπτυξης του έργου έχει αυξηθεί αισθητά - προστίθενται 400-470 ενημερώσεις κώδικα ανά μήνα από 20-50 προγραμματιστές αντί για 30-60 από 3-8 προγραμματιστές πριν από ένα χρόνο.

Ενημέρωση του GNU Coreutils που γράφτηκε ξανά στο Rust

Μεταξύ των πιο πρόσφατων επιτευγμάτων, σημειώνεται η βελτιστοποίηση απόδοσης - στην τρέχουσα κατάσταση, πολλά βοηθητικά προγράμματα, όπως το head και το cut, υπερτερούν σημαντικά σε απόδοση από τις επιλογές του GNU Coreutils. Η κάλυψη δοκιμαστικής σουίτας έχει επεκταθεί από το 55% στο 75% του συνόλου του κωδικού (το 80% είναι επαρκής στόχος). Ο κώδικας έχει ανακατασκευαστεί για να απλοποιήσει τη συντήρηση, για παράδειγμα, ο χειρισμός σφαλμάτων έχει ενοποιηθεί σε διαφορετικά προγράμματα και ο κώδικας για εργασία με δικαιώματα πρόσβασης έχει συνδυαστεί σε chgrp και chown. Έχουν προστεθεί πολλές αλλαγές για τη βελτίωση της συμβατότητας με το GNU Coreutils.

Τα σχέδια για το μέλλον περιλαμβάνουν την εφαρμογή του βοηθητικού προγράμματος stty, τη συνέχιση της εργασίας για τη βελτίωση της συμβατότητας με το GNU Coreutils, την προσθήκη βελτιστοποιήσεων για τη μείωση του μεγέθους των εκτελέσιμων αρχείων, καθώς και συνεχή πειράματα σχετικά με τη χρήση βοηθητικών προγραμμάτων uutils στο Debian και στο Ubuntu αντί για τα GNU Coreutils και GNU Findutils (ένας από τους κύριους προγραμματιστές του uutils εργάστηκε στο παρελθόν σε ένα έργο για τη δημιουργία του Debian GNU/Linux χρησιμοποιώντας τον μεταγλωττιστή Clang). Επιπρόσθετα, σημειώνεται η προετοιμασία του πακέτου uutils-coreutils για macOS, τα πειράματα με την αντικατάσταση του GNU Coreutils με τα uutils coreutils στο NixOS, η πρόθεση χρήσης του uutils coreutils από προεπιλογή στη διανομή Apertis και η προσαρμογή του σετ uutils για το Redox OS.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο