Rust 1.36

Das Entwicklerteam freut sich, Ihnen Rust 1.36 vorzustellen!

Was ist neu in Rust 1.36?
Der Trait Future wurde stabilisiert, neu: die Crate alloc, MaybeUninit, NLL für Rust 2015, eine neue Implementierung von HashMap und ein neuer Flag —offline für Cargo.


Jetzt im Detail:

  • In Rust 1.36 wurde endlich der Trait stabilisiert. Die Crate alloc.
  • Ab Rust 1.36 befinden sich Teile von std, die vom globalen Allokator abhängen (z. B. Vec), in der Crate alloc. Jetzt exportiert std diese Teile erneut.
    Mehr dazu MaybeUninit anstelle von mem::uninitialized..
  • In früheren Versionen erlaubte mem::uninitialized Ihnen, die Initialisierungsprüfung zu umgehen, was für die lazy Allokation von Arrays genutzt wurde, aber diese Funktion ist ziemlich riskant (
    ), weshalb der Typ MaybeUninit stabilisiert wurde, der sicherer ist.mehr DetailsUnd da MaybeUninit eine sicherere Alternative ist, wird mem::uninitialized ab Rust 1.38 als veraltete Funktion gelten.
    Wenn Sie mehr über nicht initialisierten Speicher erfahren möchten, können Sie den Blogeintrag (Alexis Beingessner) lesen.
    NLL für Rust 2015.
  • In der Ankündigung
    Rust 1.31.0 erzählten die Entwickler von NLL (Non-Lexical Lifetime), einer Verbesserung für die Sprache, die den Borrow Checker intelligenter und benutzerfreundlicher macht. Beispiel: let mut x = 5;
    fn main() {
    let y = &x;
    let z = &mut x; // Das war vor 1.31.0 nicht erlaubt.
    In 1.31.0 funktionierte NLL nur in Rust 2018, mit dem Versprechen, dass die Entwickler die Unterstützung auch für Rust 2015 hinzufügen würden.
    }

    Wenn Sie mehr über NLL erfahren möchten, können Sie mehr in diesem
    (Felix Klocks) lesen. einem Blogbeitrag Neuer Flag für Cargo — —offline.

  • In Rust 1.36 wurde ein neuer Flag für Cargo stabilisiert. Der Flag —offline sagt Cargo, dass es lokal zwischengespeicherte Abhängigkeiten verwenden soll, damit sie später ohne Internet verwendet werden können. Wenn die benötigten Abhängigkeiten offline nicht verfügbar sind und das Internet dennoch benötigt wird, gibt Cargo einen Fehler zurück. Um die Abhängigkeiten im Voraus herunterzuladen, kann der Befehl cargo fetch verwendet werden, der alle Abhängigkeiten herunterlädt.
    Sie können eine detaillierte Übersicht über die Änderungen lesen.
  • Hier Es gibt auch Änderungen in der Standardbibliothek:

Jetzt kann das Makro dbg!() mehrere Argumente annehmen.

Weitere Änderungen Rust, Cargo und Clippy.

Quelle: linux.org.ru

60GB SSD 8Gb DDR4