Κυκλοφορία γλώσσας προγραμματισμού Rust 1.35

πήρε θέση έκδοση γλώσσας προγραμματισμού συστήματος Σκουριά 1.35, που αναπτύχθηκε από το έργο Mozilla. Η γλώσσα εστιάζει στην ασφάλεια της μνήμης, παρέχει αυτόματη διαχείριση της μνήμης και παρέχει ένα μέσο για την επίτευξη υψηλού παραλληλισμού εργασιών χωρίς τη χρήση απορριμμάτων ή χρόνου εκτέλεσης.

Η αυτόματη διαχείριση μνήμης του Rust απαλλάσσει τον προγραμματιστή από τον χειρισμό του δείκτη και προστατεύει από προβλήματα που προκύπτουν από χειρισμό μνήμης χαμηλού επιπέδου, όπως προσβάσεις μετά την ελεύθερη μνήμη, μηδενικές παραπομπές δείκτη, υπερβάσεις buffer και παρόμοια. Αναπτύσσεται ένας διαχειριστής πακέτων για τη διανομή βιβλιοθηκών, τη διασφάλιση της συναρμολόγησης και τη διαχείριση των εξαρτήσεων από το έργο. Φορτίο, επιτρέποντάς σας να αποκτήσετε τις βιβλιοθήκες που χρειάζονται για το πρόγραμμα με ένα κλικ. Υποστηρίζεται ένα αποθετήριο για να φιλοξενεί βιβλιοθήκες crates.io.

Ο κύριος καινοτομίες:

  • Χαρακτηριστικά FnOnce, FnMut и Fn υλοποιείται για το σωρό τύπους κουτιού Box‹dyn FnOnce›, Box‹dyn FnMut› και Box‹dyn Fn›;
  • Προστέθηκε ευκαιρία χύτευση κλεισίματος σε μη ασφαλείς δείκτες λειτουργίας (μη ασφαλής fn).
  • Εφαρμόστηκε η δυνατότητα κλήσης της μακροεντολής "dbg!" χωρίς ορίσματα για την εμφάνιση του ονόματος αρχείου και του αριθμού γραμμής στο stderr χωρίς επιθεώρηση της μεταβλητής, κάτι που είναι βολικό για τον εντοπισμό σφαλμάτων της λειτουργίας των παραστάσεων υπό όρους.
  • Προστέθηκε η μέθοδος " στους τύπους κινητής υποδιαστολής f32 και f64αντιγραφικό» για να αντιγράψετε έναν χαρακτήρα από έναν αριθμό σε έναν άλλο.
  • Προστέθηκε μέθοδος "Περιέχει", που σας επιτρέπει να ελέγξετε εάν η καθορισμένη τιμή είναι εντός του εύρους.
  • Προστέθηκε μέθοδος Αναφ.:Κελί:map_split, που σας επιτρέπει να αντικατοπτρίζετε και να διαχωρίζετε τη δανεισμένη τιμή RefCell για διαφορετικά στοιχεία των δανεισμένων δεδομένων.
  • Προστέθηκε μέθοδος RefCell::replace_with για να αντικαταστήσετε την τρέχουσα τιμή RefCell και να επιστρέψετε την παλιά τιμή ως αποτέλεσμα.
  • Προστέθηκε μέθοδος ptr::hash να κατακερματίσετε έναν δείκτη ή μια αναφορά με μια διεύθυνση αντί για την τιμή διεύθυνσης.
  • Προστέθηκε μέθοδος Επιλογή::αντιγράφηκε για να αντιγράψετε τα περιεχόμενα των επιλογών Option‹&T› ή Option‹&mut T›;
  • Ένα νέο τμήμα API μεταφέρθηκε στη σταθερή κατηγορία, συμπεριλαμβανομένων μεθόδων που έχουν σταθεροποιηθεί
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Εύρος::περιέχει,
    RangeFrom::περιέχει,
    Εύρος Σε::περιέχει,
    RangeInclusive::περιέχει,
    RangeToInclusive::περιέχει και
    Επιλογή::copied;

  • Προστέθηκε ο έλεγχος drop_bounds στο clippy (linter), το οποίο ενεργοποιείται κατά την προσθήκη μιας σύνδεσης "T: Drop" στη συνάρτηση.
  • Ο μεταγλωττιστής έχει προσθέσει υποστήριξη για μια νέα πλατφόρμα προορισμού
    wasm32-άγνωστο-wasi (διεπαφή ΗΜΟΥΝ για χρήση του WebAssembly εκτός του προγράμματος περιήγησης).

  • Η εργαλειοθήκη Rust είναι προσαρμοσμένη για διανομές που βασίζονται στην τυπική βιβλιοθήκη C Musl.

Πηγή: opennet.ru

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