Programmiersprache: Rust 1.55 gibt sich nach oben offen

Neben den stabilisierten Open-Range-Pattern bringt das Release eine neue IO-Fehlerart mit und räumt die Compiler-Warnungen auf.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 7 Beiträge

(Bild: Callum Bainbridge / Shutterstock.com)

Von
  • Rainald Menge-Sonnentag

Das Rust-Team hat im turnusmäßigen Sechswochentakt Version 1.55 der Programmiersprache veröffentlicht. Auf Sprachebene stabilisiert das Release das X..-Pattern für vorzeichenlose Integer-Werte und bringt eine Ergänzung für die Enumeration zu I/O-Fehlern mit.

Unter der Haube nutzt die Standard-Library von Rust neuerdings den Eisel-Lemire-Algorithmus zum Parsen von Fließkommazahlen. Er soll zum einen performanter arbeiten und zum anderen korrektere Ergebnisse liefern. Der bisherige Parsing-Algorithmus führte zudem in Grenzfällen wohl zu einer extremen Verlangsamung. Die Umsetzung baut auf die Crate, also das Rust-Paket, fast-float-rust auf, das Daniel Lemire betreut.

Mit dem Open-Range-Pattern stabilisiert die aktuelle Version eine Komfortfunktion, die für Integerwerte einen nach oben offenen Bereich beschreibt:

match x as u32 {
  0 => println!("Null"),
  1.. => println!("positive Zahl"),
}

Die neue Schreibweise ist eine Abkürzung für 1..={integer}::MAX als Angabe des Bereichs von der gewünschten Zahl bis zum maximalen Integer-Wert.

Das Release erweitert zudem die Enumeration std::io::ErrorKind, die Arten von I/O-Fehlern beschreibt, um den Eintrag ErrorKind::Uncategorized. Der neue Wert ist ausschließlich als interne Variante abgebildet und soll versteckt bleiben. Das heißt, dass er nicht für den expliziten Einsatz in eigenen Programmen gedacht ist, sondern als klare Unterscheidung von ErrorKind::Other. Letzterer Wert dient zum Angeben eigener I/O-Fehler über std::io::Error, war aber gleichzeitig bisher auch die Antwort des Systems auf nicht kategorisierte Fehler.

Der neue Eintrag ermöglicht eine klare Unterscheidung, wobei Entwickler und Entwicklerinnen in eigenem Code den in der Pattern-Syntax vorgesehenen Unterstrich _ zum Verarbeiten der nicht kategorisierten Fälle verwenden sollten.

Die Heise-Konferenz zu Rust

Am 13. Oktober dreht sich auf der betterCode() Rust alles um die Programmiersprache Rust. Die von heise Developer und dpunkt.verlag ausgerichtete Online-Konferenz richtet sich vor allem an Entwicklerinnen und Entwickler, die Erfahrung in anderen Sprachen wie C, C++ oder Java haben und Rust für neue oder als Ergänzung bestehender Projekte im Blick haben.

Das Programm spannt den Bogen von den Grundlagen über Microservices bis zum praktischen Einsatz in sicherheitskritischen Anwendungen. Ein Blick auf die kommende Edition Rust 2021 ist ebenfalls dabei.

Schließlich räumt Version 1.55 die Fehlermeldungen des Compilers für Befehle wie cargo test und cargo check --all-targets auf, die dieselbe Crate in unterschiedlichen Konfiguration bauen. Bisher spuckten die parallel laufenden Kompilierprozesse für die einzelnen Ziele potenziell dieselben Warnungen und Fehler auf. Das aktuelle Release dedupliziert die Einträge, sodass der Compiler dasselbe Problem nur einmal meldet.

Insgesamt sind wie bereits bei der Version 1.54 die Neuerungen überschaubar. Das Team hat jedoch für dieses Jahr große Pläne mit der neuen Edition Rust 2021, die planmäßig als das nächste Release am 21. Oktober starten soll. Die öffentliche Testphase zu der dritten Edition nach Rust 2015 und Rust 2018 läuft seit Mitte Juli.

Weitere Details zu Rust 1.55 lassen sich dem Rust-Blog entnehmen. Die vollständige Liste der Änderungen und Neuerungen findet sich in den Release Notes. Wie üblich können Entwicklerinnen und Entwickler, die Rust bereits installiert haben, das aktuelle Release über rustup update stable herunterladen. Für diejenigen, die noch kein Rust verwenden, ist das rustup-Tool auf der Download-Seite separat verfügbar. Rust 1.55 lässt sich zudem direkt von der heise-Download-Seite abrufen.

(rme)