Rust rostet nicht: neue Version erschienen

Rust 1.13 bringt ?-Operator und bessere Kompilierungszeiten

Mascha Schnellbacher

© Shutterstock.com /somsak intana

Pünktlich sechs Wochen nach dem Release von Rust 1.12 steht mit Rust 1.13 eine neue Version der Systemsprache zur Verfügung. Der Fokus liegt wie immer auf Geschwindigkeit, Sicherheit sowie Nebenläufigkeit und bringt deswegen auch neue Features mit, die genau darauf abzielen.

Wie das Rust-Core-Team bekanntgibt, steht ab sofort Rust 1.13 zur Verfügung. Rust ist als Systemsprache konzipiert, die als Konkurrent für C und C++ – aber auch zu Googles Go – gesehen werden kann. Sie vereint Ansätze aus verschiedenen Programmierparadigmen, unter anderem aus der funktionalen, der objektorientierten und der nebenläufigen Programmierung, und erlaubt so ein hohes Abstraktionsniveau.

Rust 1.13 – das steckt drin

Rust 1.13 kommt gleich mit einer ganzen Portion neuer Features daher: So wurden verschiedene Erweiterungen der Sprache vorgenommen, einschließlich des lang erwarteten ?-Operators, Verbesserungen der Kompilierungszeiten sowie kleinere Neuerungen in puncto Cargo und Standardbibliothek. Außerdem enthält das Release viele kleine Verbesserungen der Dokumentation und des Error-Reportings.

Des Weiteren sind in Rust 1.13 wichtige Security-Updates für Cargo inbegriffen. Cargo basiert auf curl und OpenSSL, die bereits eigene Security-Updates veröffentlicht haben. Für weitere Informationen lohnt ein Blick auf die jeweilige Ankündigung:

Highlights in Rust 1.13

Zu den Highlights in Rust 1.13 zählt der neue Operator ?, der das Error-Handling vereinfach soll. Das geschieht über eine Reduktion der „visual noise“. Zur Verdeutlichung ein Vorher-Nachher-Code-Beispiel:

Altes Error-Handling in Rust / Quelle: Rust

Altes Error-Handling in Rust / Quelle: Rust

In diesem Fall gibt es zwei Pfade, die fehlschlagen können: das Öffnen der Datei und das Auslesen der Informationen. Passiert das, erhält man eine Fehlermeldung von read_username_from_file. Das involviert ein matching des Ergebnisses der I/O-Operations – in einfachen Fällen wie hier, wo Fehler nur zum Call Stack übertragen werden sollen, ist das Matching aber nur Boilerplate und bietet keine nützlichen Informationen. Mit ? sieht der Code jetzt so aus:

Neues Error-Handling mit ? in Rust / Quelle: Rust

Neues Error-Handling mit ? in Rust / Quelle: Rust

? ist die Abkürzung für die gesamten Match-Statements. Kurz gesagt: ? gilt für einen Result-Wert – war dieser ein Ok, umschließt es diesen und fungiert als inner value; war dieser ein Err, kehrt ? von der aktuellen Funktion zurück.

Im Prinzip unterscheidet sich ? nicht vom try!-Makro, das seit Rust 1.0 existiert. Allerdings bringt die neue Syntax entscheidende Vorteile mit sich, so das Rust-Core-Team.

Des Weiteren wurde die Compiler-Performance erheblich verbessert: Vor allem das Cachen normalisierter Prozesse während der Übersetzung wurde optimiert, was sich besonders in Code-Bases wie futures-rs auswirkt. Zudem wurde die Kompilierungszeit für Crates, die viele inline Funktionen exportieren, verbessert. Auch im Bereich Profiling und Micro-Optimierungen wurde die Compiler-Performance überarbeitet.

Darüber hinaus enthält das Release wichtige Security-Updates für Cargo; genauere Informationen finden sich in den weiter oben verlinkten Announcements. Daneben gab es noch eine Reihe kleinerer Optimierungen, wie zum Beispiel die Möglichkeit, Makros jetzt in Type Position zu nutzen und Attribute auf Statements anzuwenden. Ebenfalls wurden Inline-Drop-Flags entfernt und es gab eine Menge an Language- und Library-Stabilizations.

In Rust 1.13 gibt es einen gefährlichen Bug in der Code-Generierung für ARM-Targets. Da v1.13 ein Security-Update enthält, sollten Nutzer von ARM die 1.14 Betas verwenden, die bald einen Fix für ARM erhalten.

Ausführliche Informationen lassen sich den vollständigen Release Notes entnehmen; Rust 1.13 steht auf der Projektwebsite zum Download zur Verfügung.

Geschrieben von
Mascha Schnellbacher
Mascha Schnellbacher
Mascha Schnellbacher studierte Buchwissenschaft und Deutsche Philologie an der Johannes Gutenberg-Universität Mainz. Seit Juni 2015 arbeitet sie als Redakteurin in der Redaktion des Entwickler Magazins bei Software & Support Media. Zuvor war sie als Lektorin in einem Verlag sowie als freie Editorin tätig.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: