Programmiersprachen: Rust 1.20 stabilisiert Associated-Constants-Umsetzung

Drei Jahre nach dem ersten RFC für Associated Constants ist das Feature nun stabil in Version 1.20 von Mozillas Programmiersprache untergekommen. Aber auch Performance-Verbesserungen sind im aktuellen Release zu finden.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Programmiersprachen: Rust 1.20 stabilisiert Associated-Constants-Umsetzung
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Mozillas auf Nebenläufigkeit und Sicherheit ausgelegte, quelloffene Programmiersprache lässt sich ab sofort in Version 1.20 herunterladen. Für das aktuelle Release haben die Entwickler unter anderem die Möglichkeit fertiggestellt, sogenannte Associated Constants zu definieren. Dadurch lassen sich Konstanten mit Typen verbinden, sodass etwa klar ist, dass eine bestimmte Konstante immer einen Wert vom Typ struct enthält. Für Traits lassen sich die Associated Constants wie Associated Types verwenden und ohne Wert deklarieren – er wird in dem Fall in der Implementierung gesetzt. Ähnliche Konstrukte, zum Beispiel Associated Functions, sind schon länger in Rust enthalten, für diese Variante waren allerdings einige interne Arbeiten durchzuführen.

Das Rust-Team hat min und max in Rust neu implementiert, sodass die cmath-Bibliothek nicht mehr zum Einsatz kommen muss. Darüber hinaus ist die Standardbibliothek nun mit slice::sort_unstable_by_key, slice::sort_unstable_by und slice::sort_unstable um neue Sortieralgorithmen reicher. Instabilität bedeutet in dem Fall, dass eine Sortierung nicht unbedingt die Reihenfolge der Datensätze mit gleichem Schlüssel beibehält. Das kann sich vorteilhaft auf die Geschwindigkeit des Vorgangs auswirken; ein Beispiel für ein entsprechendes Verfahren wäre Quicksort.

Was den Package Manager Cargo anbelangt, lassen sich sekundäre Binaries in Paketen nun besser sortieren, da sie nicht mehr alle in src/bin liegen müssen, sondern es client- und server-Unterverzeichnisse gibt. Das Authentifizierungstoken von crates.io liegt nach dem Update unter ~/.cargo/credentials, sodass es sich vor Nutzern eines Systems verbergen lässt. Weitere Änderungen lassen sich den Release Notes entnehmen, die unter anderem eine korrigierte Fehlfunktion im include!-Makro und aussagekräftigere Fehlermeldungen umfassen. (jul)