Έκδοση uutils 0.11, η παραλλαγή Rust του GNU Coreutils

Κυκλοφόρησε το έργο uutils coreutils 0.11.0 (Rust Coreutils), μια ανάπτυξη του πακέτου GNU Coreutils, γραμμένο σε Rust. Το coreutils περιλαμβάνει πάνω από 100 βοηθητικά προγράμματα, όπως τα sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln και ls. Στόχος του έργου είναι η δημιουργία μιας εναλλακτικής λύσης του Coreutils για όλες τις πλατφόρμες, ικανής να εκτελείται σε πλατφόρμες όπως Windows, Οξειδοαναγωγή και Φούξια.

Τα Rust Coreutils είναι ενεργοποιημένα από προεπιλογή στην έκδοση Ubuntu 25.10 και εν μέρει σε Ubuntu 26.04 Απριλίου. Το Rust Coreutils χρησιμοποιείται επίσης στις διανομές AerynOS (Serpent OS) και Apertis (που αναπτύχθηκε από την Collabora). Σε αντίθεση με το GNU Coreutils, η υλοποίηση του Rust διανέμεται με την επιτρεπτική άδεια MIT, αντί για την GPL με copyleft. Επιπλέον, η ίδια ομάδα προγραμματιστών αναπτύσσει ισοδύναμα των σουιτών utility ...

Στη νέα έκδοση του Rust Coreutils:

  • Το ποσοστό συμβατότητας με τη σουίτα δοκιμών GNU Coreutils ήταν 95.33% (μειωμένο από 94.44%). 653 δοκιμές ολοκληρώθηκαν με επιτυχία, 8 περισσότερες από ό,τι στην προηγούμενη έκδοση (645). 22 δοκιμές απέτυχαν (μειωμένες από 29) και 15 δοκιμές παραλείφθηκαν (μειωμένες από 15).
  • Έχει ενσωματωθεί μια νέα διαγνωστική μηχανή βασισμένη στη βιβλιοθήκη ariadne. Εμφανίζει οπτικές αναφορές σφαλμάτων κατά την εκτέλεση βοηθητικών προγραμμάτων στο τερματικό, επισημαίνοντας τα ορίσματα γραμμής εντολών που προκάλεσαν το πρόβλημα. Η οπτικοποίηση σφαλμάτων είναι ενεργοποιημένη στα ακόλουθα βοηθητικά προγράμματα: chmod, mkdir, mkfifo, mknod, install, tr, expr, sort, numfmt, cut, env, head, tail, truncate, split, shred, stdbuf, od, seq, dd, stat, join, csplit, ls, df και du. Η μεταβλητή περιβάλλοντος UUTILS_DIAG προτείνεται για την απενεργοποίηση των διαγνωστικών αναφορών.
  • Η βελτιστοποίηση με καθοδήγηση προφίλ (PGO) ενεργοποιείται κατά τη διάρκεια των builds έκδοσης, δημιουργώντας πιο βέλτιστο κώδικα με βάση μια ανάλυση της συμπεριφοράς εκτέλεσης του προγράμματος. Οι προγραμματιστές εκτιμούν κέρδη απόδοσης έως και 31% για ορισμένες λειτουργίες.
  • Βελτιστοποιήσεις απόδοσης έχουν εφαρμοστεί για τα βοηθητικά προγράμματα cp (+32.93%), join (2.5 φορές πιο γρήγορα από το GNU απενεργοποιώντας τις περιττές συγκρίσεις τοπικών ρυθμίσεων), od, ptx (+4%), nl, tail, expand, unexpand, numfmt και sort. Οι καταστάσεις με λειτουργίες που ήταν αισθητά πιο αργές από ό,τι στα GNU Coreutils θεωρούνται πλέον σφάλματα.
  • Διορθώθηκαν ορισμένες αποκλίσεις με τα GNU Coreutils στη συμπεριφορά των βοηθητικών προγραμμάτων pr, numfmt, join, id, mkdir, fold, sort, stat, od και date.
  • Υλοποιήθηκαν επιλογές ειδικές για το GNU Coreutils: "uname -A", "uname --all-labeled", "cut -F", "cut --whitespace-delimited", "pr --columns", "pr --join-lines", "pr -f".
  • Τα βοηθητικά προγράμματα mv, cp, rm, chmod και stdbuf έχουν ενισχυθεί για την αποτροπή ευπαθειών που προκαλούνται από συνθήκες ανταγωνισμού, οι οποίες θα μπορούσαν να επιτρέψουν την τροποποίηση δεδομένων μετά την επαλήθευση των πληροφοριών αλλά πριν από την εκτέλεση μιας λειτουργίας. Για παράδειγμα, ένα αρχείο θα μπορούσε να αντικατασταθεί με έναν συμβολικό σύνδεσμο μεταξύ της ολοκλήρωσης της επαλήθευσης και της έναρξης της λειτουργίας. Όταν χρησιμοποιείτε τα βοηθητικά προγράμματα cp, chmod και mv σε σενάρια συστήματος που εκτελούνται με δικαιώματα root, τέτοια ευπάθειες θα μπορούσαν να επιτρέψουν την αντιγραφή ή την αντικατάσταση αυθαίρετων αρχείων.
  • Έχουν πραγματοποιηθεί εργασίες για την εξάλειψη των σφαλμάτων στα βοηθητικά προγράμματα split, yes, sort, stat, csplit, ls, od, nl, pr, csplit, dd, touch, tail, tac και who.
  • Υλοποιήθηκαν παραλλαγές των βοηθητικών προγραμμάτων kill και uptime για Windows.
  • Καταργήθηκαν τα πακέτα byteorder, same-file, filetime, winapi-util, file_diff, mockstream, binary-heap-plus, compare, arrayref (πρόσφατα παραβιάστηκε), exacl και dns-lookup υπέρ των συναρτήσεων από τις βιβλιοθήκες std, rustix και windows-sys.
  • Τα βοηθητικά προγράμματα ls και comm υποστηρίζουν πλέον την ιδιότητα τοπικών ρυθμίσεων "collation", η οποία επιτρέπει τη διενέργεια συγκρίσεων που λαμβάνουν υπόψη τη σημασία των χαρακτήρων (για παράδειγμα, τα σημεία έμφασης ενδέχεται να αγνοηθούν κατά τη σύγκριση).
  • Βελτιωμένος χειρισμός χαρακτήρων πολλαπλών byte στα βοηθητικά προγράμματα nl και cut.

Επιπλέον, η Canonical κυκλοφόρησε δύο πειραματικές εικόνες κοντέινερ για την ανάπτυξη του Rust που συμμορφώνονται με την προδιαγραφή Dev Container. Η πρώτη εικόνα περιλαμβάνει τα Rust 1.93, Cargo, rust-analyzer, Clippy, Rustfmt, Miri (έναν διερμηνέα για την ανίχνευση απροσδιόριστης συμπεριφοράς), cargo-auditable (έλεγχος κατασκευής), GCC, Clang, LLD, pkg-config, Just, Git, Vim, Helix, Ripgrep, Hyperfine, Bacon, xh και curl. Η δεύτερη εικόνα περιλαμβάνει επίσης πακέτα ανάπτυξης. Ubuntu: πακέτο-git-build, sbuild, ubuntu-dev-tools, devscripts, dh-make, dh-cargo, autopkgtest, cargo-vendor-filterer.

Πηγή: opennet.ru

Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster