Veröffentlichung der Programmiersprache Rust 1.67

Die Veröffentlichung der universellen Programmiersprache Rust 1.67, die vom Mozilla-Projekt gegründet wurde, jetzt aber unter der Schirmherrschaft der unabhängigen gemeinnützigen Organisation Rust Foundation entwickelt wird, wurde veröffentlicht. Die Sprache konzentriert sich auf die Speichersicherheit und bietet die Möglichkeit, eine hohe Jobparallelität zu erreichen und gleichzeitig die Verwendung eines Garbage Collectors und einer Laufzeit zu vermeiden (die Laufzeit beschränkt sich auf die grundlegende Initialisierung und Wartung der Standardbibliothek).

Die Speicherverarbeitungsmethoden von Rust bewahren den Entwickler vor Fehlern bei der Manipulation von Zeigern und schützen vor Problemen, die durch die Speicherverarbeitung auf niedriger Ebene entstehen, wie z. B. Zugriff auf einen Speicherbereich, nachdem dieser freigegeben wurde, Dereferenzierung von Nullzeigern, Pufferüberläufe usw. Um Bibliotheken zu verteilen, Builds bereitzustellen und Abhängigkeiten zu verwalten, entwickelt das Projekt den Cargo-Paketmanager. Das crates.io-Repository wird zum Hosten von Bibliotheken unterstützt.

Die Speichersicherheit wird in Rust zur Kompilierungszeit durch Referenzprüfung, Verfolgung des Objektbesitzes, Verfolgung der Objektlebensdauer (Umfänge) und Beurteilung der Korrektheit des Speicherzugriffs während der Codeausführung gewährleistet. Rust bietet außerdem Schutz vor Ganzzahlüberläufen, erfordert eine obligatorische Initialisierung von Variablenwerten vor der Verwendung, behandelt Fehler in der Standardbibliothek besser, wendet standardmäßig das Konzept unveränderlicher Referenzen und Variablen an und bietet starke statische Typisierung, um logische Fehler zu minimieren.

Wichtigste Neuerungen:

  • Für asynchrone Funktionen mit Future::Output ist es jetzt möglich, „#[must_use]“-Annotationen anzugeben, die eine Warnung enthalten, wenn der Rückgabewert ignoriert wird, was dabei hilft, Fehler zu identifizieren, die durch die Annahme verursacht werden, dass die Funktion die Werte ändert anstatt einen neuen Wert zurückzugeben. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; } Warnung: Nicht verwendete Ausgabe von Future, zurückgegeben von „bar“, die verwendet werden muss —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^ | = Hinweis: `#[warn(unused_must_use)]` standardmäßig aktiviert
  • Die Implementierung der FIFO-Warteschlangen std::sync::mpsc (Multi-Producer Single-Consumer) wurde aktualisiert und auf die Verwendung des Crossbeam-Channel-Moduls unter Beibehaltung der vorherigen API umgestellt. Die neue Implementierung zeichnet sich durch die Lösung einer Reihe von Problemen, eine höhere Leistung und eine vereinfachte Codepflege aus.
  • Ein neuer Teil der API wurde in die Kategorie „stabil“ verschoben, einschließlich der Stabilisierung der Methoden und Implementierungen von Merkmalen:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • Nicht Null*::BITS
  • Das Attribut „const“, das die Möglichkeit der Verwendung in jedem Kontext anstelle von Konstanten bestimmt, wird in Funktionen verwendet:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Eine dritte Unterstützungsstufe wurde für die Verwendung von Rust im Linux-Kernel (linuxkernel) sowie für die Sony PlayStation 1 (mipsel-sony-psx), PowerPC mit AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) Plattformen qnx710, x86_64-pc-nto-qnx710). Die dritte Ebene umfasst grundlegende Unterstützung, jedoch ohne automatisierte Tests, Veröffentlichung offizieller Builds oder Prüfung, ob der Code erstellt werden kann.

Darüber hinaus können wir die Veröffentlichung von Patches durch ARM zur Kenntnis nehmen, die die Verwendung der Rust-Sprache zur Entwicklung von Treibern und Linux-Kernelmodulen ermöglichen, die für Systeme basierend auf der AArch64-Architektur zusammengestellt wurden.

Source: opennet.ru

Kommentar hinzufügen