Veröffentlichung der Programmiersprache Rust 1.43

Veröffentlicht Veröffentlichung der Systemprogrammiersprache Rost 1.43gegründet vom Mozilla-Projekt. Die Sprache konzentriert sich auf eine sichere Speicherverwaltung, bietet eine automatische Speicherverwaltung und bietet die Möglichkeit, eine hohe Jobparallelität zu erreichen und gleichzeitig die Verwendung eines Garbage Collectors zu vermeiden Laufzeit.

Die automatische Speicherverwaltung von Rust befreit den Entwickler von Zeigermanipulationen und schützt vor Problemen, die durch Speichermanipulation auf niedriger Ebene entstehen, wie z. B. After-Free-Speicherzugriffe, Nullzeiger-Dereferenzierungen, Pufferüberläufe und dergleichen. Es wird ein Paketmanager entwickelt, um Bibliotheken zu verteilen, die Assemblierung sicherzustellen und Abhängigkeiten durch das Projekt zu verwalten. Kastenwagen, wodurch Sie mit einem Klick auf die Bibliotheken zugreifen können, die Sie für das Programm benötigen. Ein Repository wird zum Hosten von Bibliotheken unterstützt Kisten.io.

Haupt- Innovationen:

  • Makros bieten die Möglichkeit, Fragmente von Elementen zu verwenden, um sie in Code für Merkmale (Trait), Implementierungen (Impl) oder externe Blöcke umzuwandeln. Zum Beispiel:

    Makroregeln! mac_trait {
    ($i:item) => {
    Merkmal T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Wird zur Generation führen:

    Merkmal T {
    fn foo() {}
    }

  • Verbesserte Typerkennung von Grundelementen, Referenzen und binären Operationen.
    Beispielsweise kann der folgende Code, der zuvor einen Fehler verursachte, jetzt kompiliert werden (Rust ermittelt jetzt korrekt, dass 0.0 und &0.0 vom Typ f32 sein müssen):

    sei n: f32 = 0.0 + &0.0;

  • Cargo wurde eine neue Umgebungsvariable CARGO_BIN_EXE_{name} hinzugefügt, die beim Erstellen von Integrationstests festgelegt wird und es Ihnen ermöglicht, den vollständigen Pfad zur ausführbaren Datei zu bestimmen, die im Abschnitt „[[bin]]“ des Pakets definiert ist.
  • If-Anweisungen dürfen Attribute wie „#[cfg()]“ verwenden.
  • Die Bibliothek bietet die Möglichkeit, zugehörige Konstanten direkt für ganzzahlige und gebrochene Typen zu verwenden, ohne ein Modul importieren zu müssen. Sie können beispielsweise sofort u32::MAX oder f32::NAN schreiben, ohne zuerst „use std::u32“ und „use std::f32“ anzugeben.
  • Neues Modul hinzugefügt Primitive, das primitive Rust-Typen erneut exportiert, beispielsweise wenn Sie ein Makro schreiben und sicherstellen müssen, dass die Typen nicht ausgeblendet sind.
  • Ein neuer Teil der API wurde in die Kategorie „stabil“, einschließlich stabilisiert, überführt

    Once::is_completed,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 und
    iter::once_with.

Source: opennet.ru

Kommentar hinzufügen