Programmiersprachen: Rust 1.36 bringt weitere Stabilisierungen

Das jüngste Release der Programmiersprache bietet zahlreiche Verbesserungen, unter anderem stabile Versionen verschiedener APIs und Funktionen.

In Pocket speichern vorlesen Druckansicht
Rust 1.35 bringt nützliche Ergänzungen
Lesezeit: 2 Min.

Das Team hinter der ursprünglich von Mozilla ins Leben gerufenen Programmiersprache hat Version 1.36 von Rust vorgelegt. Zu den Highlights des neuen Release zählt die Stabilisierung des Future-Traits. Das Rust-Team hofft, damit endlich die Voraussetzung geschaffen zu haben, wichtigen Crates, Librarys sowie dem gesamten Rust-Ökosystem ausreichend Zeit für die Vorbereitung auf async / .await zu verschaffen.

Stabil ist in der neuen Version auch der alloc-Crate, der nun jene Teile von std zur Verfügung stellt, die von Global Allocator wie Vec<T> abhängen. Die betreffenden Teile reextrahiert std nun bei Bedarf. Bisher enthielt die Standard-Library von Rust die Crates std, core und proc_macro, wobei core Kernfunktionen wie Iterator und Copy bereitstellt und in #![no_std]-Umgebungen genutzt werden konnte, da es keine Anforderungen voraussetzt. std unterdessen stellt Types wie Box<T> und OS-Funktionen bereit, erfordert im Gegenzug aber einen Global Allocator und andere OS-Fähigkeiten.

Vorläufig können #![no_std]-Binaries alloc nur in Verbindung mit einem Nigthly-Release von Rust verwenden. In den stabilen Rust-Versionen müssen Entwickler noch auf #![no_std]-Library-Crates zurückgreifen.

Um die bisher gängige Verwendung von mem::uninitialized zur Umgehung der Initialisierungstests von Rust zu unterbinden, hat das Rust-Team den Type MaybeUninit<T> stabilisiert. So sollen Missinterpretationen des Compilers bezüglich der Initialisierung des Type T vermieden werden. Ab Rust 1.38 soll die Funktion mem::uninitialized deprecated werden. Weitere Details zu nicht initialisiertem Speicher und MaybeUninit<T> enthält der Blogpost von Alexis Beingessner.

Die Ankündigung zu Rust 1.36 im offiziellen Rust-Blog liefert weitere Details zu den Neuerungen der Programmiersprache – darunter auch die neue Implementierung von HashMap<K, V> sowie die --offline-Unterstützung in Cargo. Eine vollständige Übersicht der Änderungen und Stabilisierungsmaßnahmen finden sich in den Release Notes. Eine Dokumentation, der Sourcecode für den Compiler sowie die Standardbibliothek liegen im Repository auf GitHub parat. Wer Rust installieren möchte, kann das passende Werkzeug von der Tools-Seite nutzen. (map)