Original-URL des Artikels: https://www.golem.de/news/programmiersprache-rust-1-39-erscheint-mit-async-await-1911-144872.html    Veröffentlicht: 08.11.2019 10:22    Kurz-URL: https://glm.io/144872

Programmiersprache

Rust 1.39 erscheint mit Async/Await

Nach über drei Jahren Arbeit ist die Async-Await-Technik in der nun verfügbaren Version 1.39 der Sprache Rust offiziell stabilisiert. Zudem gibt der neue Borrow-Checker erstmals Fehler in Rust aus.

Die Version 1.39 der Programmiersprache Rust ist erschienen. Damit ist Technik für die Async-Await-Syntax erstmals offiziell stabil verfügbar. Begonnen haben die Arbeiten daran bereits vor mehr als drei Jahren, wie das Team selbst in einem zusätzlichen Blogeintrag zu der Technik schreibt. Mit der Version 1.36, die im Sommer dieses Jahres erschienen ist, hat das Entwicklerteam bereits wichtige Vorarbeiten dafür durchgeführt.

Die nun verfügbare Implementierung bezeichnet das Team als Minimal Viable Product (MVP) und geht entsprechend davon aus, dass sich die Technik künftig noch stark weiter entwickeln werde. Mit Hilfe der neuen Syntax lassen sich Funktionen und Codeblöcke als async markieren und mit .await kann auf deren Fertigstellung gewartet werden. Der Rückgabewert einer Async-Funktion ist dabei ein Future. Letzteres wiederum beschreiben die Entwickler von Rust als "ausgesetzte Berechnung".

Die Technik lässt sich einfach mit dem Ziel beschreiben, Funktionen auch pausieren zu können. Ähnliche Techniken gibt es auch in anderen Sprachen wie etwa Javascript oder C#. Die Rust-Entwickler weisen aber explizit darauf hin, dass sich das eigene Ausführungsmodell von denen in wichtigen Details unterscheide.

Neuer Borrow-Checker wird eingeführt

Mit Rust 1.39 ändert das Team außerdem das Verhalten des neu eingeführten Borrow-Checkers für die Veröffentlichung von Rust 2018. Die alte Technik hatte einige Probleme, die unsichere Speicherzugriffe ermöglichte, was Rust eigentlich verhindern soll. Die neue Implementierung hat zwar diese Probleme behoben, jedoch für einige Fehler in produktivem Code gesorgt.

Bisher hat das Team das geänderte Verhalten lediglich als Warnungen angezeigt. Mit der nun veröffentlichten Version 1.39 werden daraus harte Fehler in Rust 2018. Mit der kommenden Version 1.40 soll das auch für Rust 2015 umgesetzt werden, so dass der alte Borrow-Checker entfernt werden kann.

Entwickler können mit Rust 1.39 Attribute in Funktionsparametern nutzen. Außerdem sind einige Funktionen aus der Standardbibliothek als const fn verfügbar, dazu gehören etwa Vec::new, String::new, LinkedList::new oder auch str::len. Diese lassen sich in const-Umgebungen aufrufen, also etwa um einen konstanten Vektor zu erzeugen. Weitere Neuerungen listet die Ankündigung.

 (sg)


Verwandte Artikel:
Cloud Computing: AWS sponsert Open-Source-Projekte mit Gutschriften   
(15.10.2019, https://glm.io/144425 )
Progammiersprache: Rust 1.36 stabilisiert Future und Alloc   
(05.07.2019, https://glm.io/142351 )
Progammiersprache: Rust 1.33 ermöglicht Anpinnen von Speicherbereichen   
(01.03.2019, https://glm.io/139725 )
Security: Microsoft baut COM-Bibliothek in Rust   
(10.10.2019, https://glm.io/144358 )
Sicherheit: Microsoft untersucht Rust als Alternative zu C und C++   
(22.07.2019, https://glm.io/142695 )

© 1997–2019 Golem.de, https://www.golem.de/