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

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

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

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

  • Οι μακροεντολές παρέχουν τη δυνατότητα χρήσης θραυσμάτων στοιχείων για τη μετατροπή τους σε κώδικα για χαρακτηριστικά (χαρακτηριστικό γνώρισμα), υλοποιήσεις (impl) ή εξωτερικά μπλοκ. Για παράδειγμα:

    macro_rules! mac_trait {
    ($i:item) => {
    χαρακτηριστικό T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Θα οδηγήσει στη γενιά:

    χαρακτηριστικό T {
    fn foo() {}
    }

  • Βελτιωμένη ανίχνευση τύπου πρωτόγονων, αναφορών και δυαδικών λειτουργιών.
    Για παράδειγμα, ο ακόλουθος κώδικας, ο οποίος προκαλούσε προηγουμένως σφάλμα, θα μπορεί τώρα να μεταγλωττιστεί (το Rust τώρα προσδιορίζει σωστά ότι το 0.0 και το &0.0 πρέπει να είναι τύπου f32):

    έστω n: f32 = 0.0 + &0.0;

  • Μια νέα μεταβλητή περιβάλλοντος CARGO_BIN_EXE_{name} προστέθηκε στο Cargo, η οποία ορίζεται κατά τη δημιουργία δοκιμών ενοποίησης και σας επιτρέπει να προσδιορίσετε την πλήρη διαδρομή προς το εκτελέσιμο αρχείο που ορίζεται στην ενότητα "[[bin]]" του πακέτου.
  • Εάν επιτρέπεται στις δηλώσεις να χρησιμοποιούν χαρακτηριστικά όπως "#[cfg()]".
  • Η βιβλιοθήκη παρέχει τη δυνατότητα χρήσης συσχετισμένων σταθερών απευθείας για ακέραιους και κλασματικούς τύπους, χωρίς εισαγωγή λειτουργικής μονάδας. Για παράδειγμα, μπορείτε να γράψετε αμέσως u32::MAX ή f32::NAN χωρίς πρώτα να καθορίσετε "use std::u32" και "use std::f32".
  • Προστέθηκε νέα ενότητα πρωτόγονος, το οποίο επανεξάγει τους πρωτόγονους τύπους Rust, για παράδειγμα όταν πρέπει να γράψετε μια μακροεντολή και να βεβαιωθείτε ότι οι τύποι δεν είναι κρυφοί.
  • Ένα νέο τμήμα API μεταφέρθηκε στη σταθερή κατηγορία, συμπεριλαμβανομένων των σταθεροποιημένων

    Μόλις::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 και
    iter::once_with.

Πηγή: opennet.ru

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