Menü
Developer

Programmiersprachen: Rust bekommt Unions

Mozillas auf Sicherheit und Nebenläufigkeit ausgelegte Programmiersprache Rust hat Version 1.19 erreicht und räumt mit einigen länger bekannten Unzulänglichkeiten auf. Außerdem verbessert sich mit ihr die Kompatibilität zu C.

Von
vorlesen Drucken Kommentare lesen 92 Beiträge
Programmiersprachen: Rust bekommt Unions

Die Entwickler der Systemprogrammiersprache Rust haben Version 1.19 ihres Projekts freigegeben. Es ist das erste Release das den enum ähnelnden Typ union kennt, was die Kompatibilität zu C verbessert. Grund ist, dass entsprechende APIs unions freilegen können, was bedeutet, dass sich nun leichter Wrapper für sie schreiben lassen. Der Unterschied zu enum ist, dass sie keinen Tag besitzen, in dem der zur Laufzeit richtige Zustand hinterlegt ist. Derzeit können unions nur Copy-Typen enthalten und kein Drop implementieren, das soll sich aber bald ändern.

In mit loop markierten Schleifen lässt sich ab Version 1.19 statt

let x;
loop{
x=7;
break;
}

kompakter

let x = loop { break 7; };

schreiben. Außerdem stehen nun die Makros eprint! und eprintln! zur Verfügung, die wie print! und println! agieren, nur dass die Ausgabe auf Standard Error statt den normalen Output umgeleitet wird. Da das -z-Flag unsichere Flags im Compiler erlaubt hat, ist es nicht länger in stabilen und Betaversionen erlaubt; entsprechende Warnungen gab es schon seit April 2016.

Cargo und gute Nachrichten für Windows-Nutzer

Auch bei der Paketverwaltung Cargo gibt es einige Verbesserungen: So checkt das Programm für Arbeiten mit dem crates.io-Index diesen nicht länger aus, was die lokale Größe der Registry und die für einen Klonvorgang nötige Zeit reduziert. Darüber hinaus sind Build-Skripte nun in der Lage, der Umgebung, in der eine Crate kompiliert wird, Umgebungsvariablen hinzuzufügen, und es gibt mit --all ein neues Flag in cargo bench, mit dem sich Benchmarks für alle Member eines Workspace durchführen lassen. Crates entsprechen dem, was in anderen Sprachen beispielsweise unter der Bezeichnung Pakete läuft.

Windows-Nutzer müssen im Übrigen nach dem Update auf die nun freigegebene Version 1.19 nicht länger auf Workarounds bauen, um Rust zum Laufen zu bekommen, da rustc nun weiß, wo die Visual C++ Build Tools für VS 2017 zu finden sind. Eine komplette Liste aller Änderungen ist in den Release Notes zu finden. (jul)