Zum Hauptinhalt Zur Navigation

Programmiersprache: Rust 1.46.0 erweitert die Const-Funktion

Die Const-Funktionen unterstützen in der aktuellen Rust -Version 1.46 viele wichtige und grundlegende Anweisungen der Programmiersprache.
/ Kristian Kißling (Linux Magazin) , Sebastian Grüner
8 Kommentare News folgen (öffnet im neuen Fenster)
Rust 1.46 ist erschienen. (Bild: Timor Kodal, flickr.com)
Rust 1.46 ist erschienen. Bild: Timor Kodal, flickr.com / CC-BY-SA 2.0

Die aktuelle Version 1.46 der Programmiersprache Rust ist erschienen(öffnet im neuen Fenster) . Die Neuerungen betreffen unter anderem die Sprache selbst, die Bibliotheken und den Paketmanager Cargo. So lassen sich einige Kern-Funktionen und -Anweisungen der Sprache nun auch in einer rudimentären Const-Funktion einsetzen ( const fn ). Dazu zählen: if , if let , match , while , while let , loop sowie die Operatoren && und || . Ebenso gibt es die Möglichkeit, ein Array in einer Const-Funktion in einen Slice zu verwandeln. Der Vorteile solcher Konstrukte: Einige Operationen lassen sich so in den Compile-Vorgang verlagern, weshalb der Code beim Ausführen schneller läuft.

Aufrufer tracken

Ein neues Attribut namens #[track_caller] lässt sich mit Rust 1.46 an Funktionen anbringen. Tritt beim Aufruf einer solchen Funktion dann ein Panic-Fehler auf, kann das Attribut den Aufrufer identifizieren und entsprechende weitermelden. Weitere Neuerungen: Das rekursive Indizieren in Tupeln erfordert nun keine runden Klammern mehr, mem::transmute lässt sich mit static und const verwenden, aber noch nicht in const fn . Anderes gilt für mem::forget im Bibliothekskatalog, das nun eine const fn ist.

Weiterhin implementiert String nun Fromᐸcharᐳ und (String, u16) implementiert ToSocketAddrs . Der Paketmanager Cargo hat zudem vier weitere Umgebungsvariablen erlernt. Während CARGO_BIN_NAME und CARGO_CRATE_NAME auf die Namen einer Binärdatei respektive eines Crates verweisen, enthält CARGO_PKG_LICENSE den Pfad zur Lizenz des Paketmanifests und CARGO_PKG_LICENSE_FILE den zur Lizenzdatei.

Alle Neuerungen im Überblick sowie einige Anmerkungen zur Kompatibilität liefern die ausführlichen Release Notes(öffnet im neuen Fenster) . Sie verlinken auch die passenden Pull Requests. Wer sein vorhandenes Rust auf die aktuelle Version aktualisieren möchte, gibt einfach rustup update stable ein.


Relevante Themen