Programmiersprache Rust 1.51: Const-Generics-Implementierung hat MVP-Status

Das neue Release der Programmiersprache bringt außerdem einen neuen Feature-Resolver mit, der einige unerwünschte Vereinheitlichungen des bisherigen aufhebt.

In Pocket speichern vorlesen Druckansicht 12 Kommentare lesen

(Bild: sdecoret/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Alexander Neumann

Die Programmiersprache Rust erscheint mittlerweile ungefähr alle sechs Wochen in einer neuen Version. Das neue Release unter der Nummer 1.51 bringt als wohl wichtigste neue Features eine MVP-Implementierung (Minimum Viable Product) der sogenannten Const Generics und einen neuen Feature-Resolver für den Paketmanager Cargo.

Mit den Const Generics wollen die Programmiersprachentwickler ein Werkzeug zum Programmieren von APIs bereitstellen, die sich stabil zur Kompilierzeit verhalten. Entwickler von Bibliotheken sollen damit auf einfache Weise wiederverwendbaren Code ohne Laufzeit-Overhead schreiben können. Const Generics sind generische Argumente, die sich über konstante Werte erstrecken, statt über die Lebenszeit oder Typen. An der Einführung dieses Featues wird schon geraume Zeit gearbeitet, und bereits in den letzten Releases gab es kontinuierlich Anpassungen dazu. Mit Version 1.51 ist es nun möglich, Code zu schreiben, der sich generisch über die Werte eines beliebigen Integer-, bool- oder char-Typs verhält. Weitere Informationen zur Const-Generics-Implementierung hält ein Blog-Beitrag der Entwickler aus dem letzten Monat bereit.

In dem Zuge wurde mit std::array::IntoIter eine neue, Const Generics nutzende API, auf ein stabiles Niveau gehoben. Damit können Entwickler einen nach Werten geordneten Iterator über ein beliebiges Array erstellen. Bisher gab es wohl keine bequeme Möglichkeit, über eigene Werte eines Arrays zu iterieren, nur über Referenzen auf sie.

Der neue Feature-Resolver führt einen Algorithmus zur Berechnung von Paket-Features ein, der einige unerwünschte Vereinheitlichungen des bisherigen Resolvers aufheben soll. Das umfasst auch einige Änderungen bei der Aktivierung von Features in der Befehlszeile. Die Dokumentation beleuchtet die Motivation für diese Änderung.

Eine weitere Auffälligkeit im neuen Release sind wohl verbesserte Kompilierzeiten unter macOS. In die Kerbe schlagen auch eine Beschleunigung von Builds, Debug-Informationen und eine Reduzierung des Speicherplatzes. Schließlich ist von der Stabilisierung 18 neuer Methoden für verschiedene Typen wie Slice und Peekable die Rede. Um welche es sich dabei handelt, verrät die Blog-Ankündigung zum neuen Release, die auch die anderen Änderungen vorstellt.

(ane)