Programmiersprache: Rust 1.38 führt Pipeline-Kompilierung ein
Das Konzept der Pipeline-Kompilierung soll zu einer besseren Performance der Programmiersprache führen.
- Alexander Neumann
Die nun veröffentlichte Version 1.38 der Programmiersprache Rust führt das Prinzip der Pipeline-Kompilierung ein. Das schlägt insofern zu Buche, dass Cargo, der Paketmanager für Rust, mit dem Bau abhängiger Crates beginnt, sobald Metadaten wie eine Liste von Typen, Abhängigkeiten und Exporte fertig sind. Bei Builds mit mehreren Crates soll das zu einer rund 10 bis 20 Prozent schnelleren Kompilierperformance führen. (Bei Rust sind Crates so etwas wie Bibliotheken oder Pakete in anderen Programmiersprachen.)
Rust 1.38 hat das #[deprecated]
-Attribut insofern erweitert, dass Entwickler nun damit auch Makros als veraltet kennzeichnen können. Der Rust-Compiler wird nun beim fehlerhaften Einsatz von mem::uninitialized
oder mem::zeroed
eine Fehlermeldung ausgeben. std::mem::uninitialized
sei im Wesentlichen nicht sicher zu verwenden, heißt es in der Blog-Ankündigung. Die Empfehlung ist, MaybeUninit<T>
zu nutzen. In einem späteren Release soll std::mem::uninitialized
entfernt werden.
Beim Debugging kann es sinnvoll sein, den Namen eines Typs zu erhalten. Beispielsweise können Entwickler im generischen Code zur Laufzeit sehen, mit welchen konkreten Typen die Typparameter einer Funktion instanziiert wurden. Dies kann nun mit std::any::any::type_name
geschehen. Ansonsten weisen die Sprachentwickler auf kleinere Änderungen bei den Bibliotheken sowie auf Stabilisierungsarbeiten bei Funktionen hin.
Was ist Rust?
Rust gehört zu den noch jungen Programmiersprachen, denen allenthalben eine vielversprechende Zukunft bescheinigt wird. Die bei Mozilla entstandene Sprache wird mittlerweile nicht mehr nur beim Browserexperten eingesetzt, und bei der weltweit größten Umfrage unter Entwicklern lag Rust dieses Jahr in der Gunst der Teilnehmer weit vorne.
Trotz syntaktischer Ähnlichkeiten mit C beziehungsweise C++ gibt es semantische Unterschiede. Rust verwendet auch funktionale Ansätze und besitzt wie Googles Go von Haus aus Konzepte zur nebenläufigen Programmierung. Außerdem soll die Programmiersprache mehr Sicherheit als beispielsweise C++ bieten, indem sie Programmierfehler, die zu Schwachstellen durch Speicherzugriffsfehler und Pufferüberläufe führen durch ein eigenes Typsystem vermeiden will.
Siehe dazu auf heise Developer:
- Rust als sichere Programmiersprache für systemnahe und parallele Software
- Task- und Datenparallelität mit Rust
- Jan-Erik Rediger: Entwickler aus allen Programmiersprachen kommen zu Rust
(ane)