Veröffentlichung der Programmiersprache Rust 1.67

Die Veröffentlichung der Programmiersprache Rust 1.67, ursprünglich von Mozilla entwickelt und jetzt von der unabhängigen Non-Profit-Organisation Rust Foundation betreut, ist nun verfügbar. Die Sprache legt großen Wert auf sichere Speicherverwaltung und bietet Mittel zur Erreichung hohen Parallelismus bei der Ausführung von Aufgaben, ohne dabei auf einen Garbage Collector oder eine umfangreiche Runtime angewiesen zu sein (die Runtime beschränkt sich auf grundlegende Initialisierungsaufgaben und die Unterstützung der Standardbibliothek).

Die Speicherverwaltungsmethoden in Rust befreien Entwickler von Fehlern beim Umgang mit Zeigern und schützen vor Problemen, die durch die Programmierung auf niedriger Ebene entstehen, wie z.B. den Zugriff auf freigegebenen Speicher, Dereferenzierung von Nullzeigern, Pufferüberläufe usw. Zur Verteilung von Bibliotheken, zur Gewährleistung des Builds und zum Management von Abhängigkeiten wird der Paketmanager Cargo entwickelt. Für die Bereitstellung von Bibliotheken wird das Repository crates.io unterstützt.

Die sichere Handhabung von Speicher in Rust wird während der Kompilierung durch die Überprüfung von Referenzen, das Verfolgen des Besitztums von Objekten, das Management der Lebensdauer von Objekten (Sichtbarkeitsbereiche) und die Bewertung der Korrektheit des Zugriffs auf den Speicher zur Laufzeit sichergestellt. Rust bietet außerdem Mechanismen zum Schutz vor ganzzahligen Überläufen, erfordert die verpflichtende Initialisierung von Variablenwerten vor der Verwendung, behandelt Fehler in der Standardbibliothek effektiver, implementiert das Konzept der Unveränderlichkeit (immutable) von Referenzen und Variablen standardmäßig und bietet eine starke statische Typisierung zur Minimierung logischer Fehler.

Hauptneuheiten:

  • Für async-Funktionen mit Future::Output wurde die Möglichkeit zur Angabe von Annotations «#[must_use]» implementiert, die eine Warnung ausgeben, falls der Rückgabewert ignoriert wird. Dies hilft, Fehler zu erkennen, die durch die Annahme entstehen, dass die Funktion Werte ändert, anstatt ein neues Wert zurückzugeben. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; } warning: unused output of future returned by `bar` that must be used —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^ | = note: `#[warn(unused_must_use)]` on by default
  • Die Implementierung der FIFO-Warteschlangen von std::sync::mpsc (Multi-Producer Single-Consumer) wurde aktualisiert und nutzt jetzt das crossbeam-channel-Modul bei Beibehaltung der bisherigen API. Die neue Implementierung behebt mehrere Probleme, verbessert die Leistung und vereinfacht die Wartung des Codes.
  • Eine neue Reihe von APIs wurde stabilisiert und in die stabile Version überführt, einschließlich stabilisierter Methoden und Implementierungen von Traits:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Das „const“-Merkmal, das die Verwendung in jedem Kontext anstelle von Konstanten ermöglicht, wurde in den Funktionen angewendet:
    • char::from_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Eine dritte Unterstützungsebene für die Verwendung von Rust im Linux-Kernel (linuxkernel) wurde implementiert, sowie für die Plattformen Sony PlayStation 1 (mipsel-sony-psx), PowerPC mit AIX (powerpc64-ibm-aix), QNX Neutrino RTOS (aarch64-unknown-nto-qnx710, x86_64-pc-nto-qnx710). Die dritte Ebene bedeutet grundlegende Unterstützung, jedoch ohne automatisierte Tests, Veröffentlichung offizieller Builds und Überprüfung der Build-Möglichkeiten.

Zusätzlich kann die Veröffentlichung von Patches durch das Unternehmen ARM erwähnt werden, die die Verwendung von Rust zur Entwicklung von Treibern und Modulen des Linux-Kernels ermöglichen, die für Systeme auf Basis der Architektur AArch64 kompiliert werden.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster