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.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/0/7/8/4/1/3/rust-486b0ff399517c1d.jpeg)
(Bild: sdecoret/Shutterstock.com)
- 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.
Generische Argumente für stabile APIs
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.
Feature-Resolver räumt mit Ungereimtheiten auf
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)