Η Rust είναι μια μεταγλωττισμένη γλώσσα προγραμματισμού πολλαπλών παραδειγμάτων, γενικής χρήσης.
Η νέα έκδοση του Rust 1.78 έχει ήδη κυκλοφορήσει και εφαρμόζονται νέες δυνατότητες, καθώς και τη σταθεροποίηση ορισμένων API, βελτιώσεις στο Cargo και άλλα.
Για όσους δεν γνωρίζουν αυτήν τη γλώσσα προγραμματισμού, θα πρέπει να το γνωρίζουν εστιάζει στην ασφάλεια της μνήμης και παρέχει τα μέσα για την επίτευξη υψηλού παραλληλισμού εργασιών, ενώ αποφεύγεται η χρήση απορριμματοσυλλέκτη και ο χρόνος εκτέλεσης (ο χρόνος εκτέλεσης μειώνεται σε βασική προετοιμασία και τυπική συντήρηση βιβλιοθήκης).
Κύρια νέα χαρακτηριστικά του Rust 1.78
Σε αυτή τη νέα έκδοση που παρουσιάζεται από Το Rust 1.78 έχει αυξήσει την ελάχιστη απαίτησή του για Windows 10, Εκτός αυτού ο μεταγλωττιστής άλλαξε για να χρησιμοποιεί το LLVM 18. Όταν χρησιμοποιείτε το LLVM 18 για αρχιτεκτονικές x86-32 και x86-64, το ABI που σχετίζεται με τους τύπους u128 και i128 έχει αλλάξει.
Όσον αφορά τις αλλαγές, ένα από τα χαρακτηριστικά που ξεχωρίζει είναι ότι το Rust τώρα υποστηρίζει έναν χώρο ονομάτων χαρακτηριστικών «#[διάγνωση]", τι παρέχει ένα μέσο για να επηρεάσει τα μηνύματα σφάλματος που παράγονται από τον μεταγλωττιστή. Αυτά αντιμετωπίζονται ως υποδείξεις ότι ο μεταγλωττιστής δεν απαιτείται να χρησιμοποιήσει, ούτε αποτελεί σφάλμα η παροχή ενός διαγνωστικού που δεν αναγνωρίζει ο μεταγλωττιστής. Αυτό επιτρέπει στον πηγαίο κώδικα να παρέχει διαγνωστικά ακόμα και όταν δεν υποστηρίζονται από όλους τους μεταγλωττιστές, είτε διαφορετικές εκδόσεις είτε εντελώς διαφορετικές υλοποιήσεις.
Επιπλέον, μια παγκόσμια κρυφή μνήμη έχει σταθεροποιηθεί στο Cargo που αποθηκεύει πληροφορίες σχετικά με την πιο πρόσφατη χρήση δεδομένων. Αυτή η κρυφή μνήμη βρίσκεται στο $CARGO_HOME/.global-cache και χρησιμοποιεί το SQLite για την υλοποίησή του. Ενημερώνεται αυτόματα για να αντικατοπτρίζει τις τελευταίες αλλαγές στο ευρετήριο, το αρχείο crate, τον κατάλογο κώδικα, τον κλώνο git και το git checkout, βελτιώνοντας την αποτελεσματικότητα και την ταχύτητα των λειτουργιών διαχείρισης εξαρτήσεων σε έργα ανάπτυξης.
Ένα άλλο νέο χαρακτηριστικό του Rust 1.78 είναι ότι διαθέτει η τυπική βιβλιοθήκη Rust Διάφορες δηλώσεις για προϋποθέσεις μη ασφαλών λειτουργιών η οποία μπορεί τώρα να αναβληθεί μέχρι τη δημιουργία κώδικα. Αυτό επιτρέπει τη διενέργεια αυτών των ελέγχων ιστορικά είχαν ενεργοποιηθεί μόνο σε builds «#[cfg(debug_assertions)]» για να αποφύγετε να επηρεάσετε την απόδοση στην έκδοση έκδοσης. Με αυτήν την αλλαγή, οι χρήστες μπορούν πλέον να ανιχνεύουν απροσδιόριστη συμπεριφορά στον κώδικά τους, αν και οι λεπτομέρειες σχετικά με το πόσο ελέγχεται δεν είναι γενικά σταθερές. Για να ενεργοποιηθούν οι έλεγχοι, αρκεί πλέον να ενεργοποιηθούν οι ισχυρισμοί εντοπισμού σφαλμάτων για δοκιμές ή εκδόσεις εντοπισμού σφαλμάτων του κώδικα.
Επιπλέον, τώρα συμπεριφορά τυπικών λειτουργιών βιβλιοθήκης που επηρεάζουν την ευθυγράμμιση δεικτών και τομέων είναι πλέον προβλέψιμο κατά το χρόνο εκτέλεσης και εξαρτάται από τα δεδομένα εισόδου. Η λειτουργία δείκτης::align_offset, το οποίο υπολογίζει τη μετατόπιση για την ευθυγράμμιση του δείκτη τώρα επιστρέφει χρήση::ΜΕΓ μόνο εάν η λειτουργία αποτύχει. Οι λειτουργίες slice::align_to και slice::align_to_mut, που μετατρέπουν τις φέτες σε μια αναπαράσταση με μια ευθυγραμμισμένη μεσαία φέτα και τις αρχικές φέτες αρχής και τέλους, τώρα επιστρέφουν πάντα το μεγαλύτερο μεσαίο τμήμα.
Από την άλλη, αναφέρεται ότι Τα ακόλουθα API έχουν μετακινηθεί στην κατηγορία "σταθερά".: impl Read for &Stdin, impl From για io::Σφάλμα και την υλοποίηση υπονοώ που επιτρέπει τη χρήση του ?Εχων μέγεθος.
Του Άλλες αλλαγές που ξεχωρίζουν αυτής της νέας έκδοσης:
- Το δεύτερο επίπεδο υποστήριξης για την πλατφόρμα στόχου Add wasm32-wasip1 έχει υλοποιηθεί. Το δεύτερο επίπεδο υποστήριξης περιλαμβάνει εγγύηση συναρμολόγησης.
- Η πλατφόρμα wasm32-wasi-preview1-threads έχει μετονομαστεί σε wasm32-wasip1-threads.
- Στη Διαχείριση πακέτων Cargo, η έκδοση 4 των αρχείων κλειδώματος (lockfile v4) έχει σταθεροποιηθεί. Η Cargo χρησιμοποιεί τώρα αυτήν την έκδοση ως πρότυπο για να εξασφαλίσει συνέπεια και αποτελεσματική διαχείριση των εξαρτήσεων μεταξύ των έργων.
Αν είστε ενδιαφέρεται να μάθει περισσότερα για αυτό, μπορείτε να δείτε τις λεπτομέρειες στο τον ακόλουθο σύνδεσμο.
Τέλος, για όσους είναι Ενδιαφέρομαι για αναβάθμιση από μια προηγούμενη έκδοση του Rust εγκατεστημένο μέσω rustup, μπορείτε να αποκτήσετε τη νέα έκδοση του Rust 1.78 με:
rustup update stable
Εάν δεν έχετε ήδη εγκατεστημένο το Rust στο σύστημά σας, μπορείτε να το κάνετε εκτελώντας την ακόλουθη εντολή σε ένα τερματικό:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh