Programmiersprache Rust geht aufgeräumt in die nächste Runde

Für die Version 0.11 haben die Entwickler die Standardbibliothek und das Typensystem der auf Sicherheit, Performance und Nebenläufigkeit ausgerichteten Sprache gehörig überarbeitet.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Ein Vierteljahr nach dem letzten Rust-Release steht nun die Version 0.11 der Programmiersprache zur Systemprogrammierung zur Verfügung. Das von Mozilla vorangetriebene Projekt hatte im Vorfeld der Veröffentlichung einige strukturelle Überarbeitungen erfahren, die Programmierer beachten sollten. Sprachanfänger können sich seit der aktuellen Veröffentlichung außerdem in einer neuen Sandbox austoben, in der sich Beispielcode online teilen und ausführen lässt.

In der Rust-Sandbox kann man die Sprache online ausprobieren.

(Bild: http://play.rust-lang.org/ )

Der Fokus der Entwickler lag laut den Release Notes auf der Umsetzung größenmäßig dynamisch anpassbarer Typen (Dynamically-Sized-Types, DST) und einem Refactoring der Standardbibliothek. Nicht mehr Teil des Rust-Typensystems sind ~str und ~[T], die im Zuge der DST-Vorbereitungen Box<str> und Box<[T]> weichen müssen, vorerst aber durch die schnelleren String und Vec ersetzt werden.

Da die Entwickler momentan versuchen, möglichst viele Features vom Compiler in Bibliotheken auszulagern, haben sie zudem ~- und @-Zeiger aus der Sprache entfernt und deren Funktion in Bibliotheken verschoben. So ersetzen sie beispielsweise ~T durch Box<T> aus der Bibliothek std::owned und @T durch Gc<T> aus std::gc. ~expr und @expr sind ebenfalls obsolet, an ihre Stelle treten box expr und box(GC) expr, wobei box in Rust in etwa mit "placement new" aus C++ zu vergleichen sein soll.

Was die Standardbibliothek libstd anbelangt, so wurde diese derart umgearbeitet, dass sie nun als Überbau für eine Anzahl kleinerer Libraries dient. Dieser Schritt soll für klarere Abstraktionen zwischen Bibliotheken und ein besseres Verständnis der Abhängigkeiten jeder Komponentenbibliothek sorgen. Die untergeordneten Bibliotheken sind libcore mit den Kernfunktionen der Sprache, liblibc für libc-Bindings, liballoc für die Kernallokierungsschnittstelle, libcollections, die die wichtigsten Collection-Typen der Sprache (Vektoren, Strings, etc.) enthält, librustrt mit den Kernkomponenten der Laufzeitumgebung, libsync für die Nebenläufigkeit und librand zum Generieren von Zufallszahlen.

Mozilla sponsort die Rust-Entwicklung seit mittlerweile gut fünf Jahren. Erdacht wurde Rust von Graydon Hoare. Die Sprache soll vor allem schnell und absturzfrei arbeiten und Data Races vermeiden. Auch Nebenläufigkeit ist einer der Schwerpunkte von Rust, dass besonders zum Programmieren von Systemen gedacht ist. Zum Optimieren kommt intern in vielen Fällen die Compilerinfrastruktur LLVM zum Einsatz. (jul)