Programmiersprache: Rust 1.54 erweitert die Anbindung an WebAssembly
Neben der Stabilisierung intrinsischer Funktionen für die wasm32-Plattform bringt das Release Ergänzungen für Makros mit.
Im turnusmäßigen Sechswochentakt ist Rust 1.54 erschienen. Die neue Version hat zwei nennenswert Neuerungen an Bord, die einerseits WebAssembly als Zielplattform und andererseits den Einsatz von Makros in Attributen betreffen. Außerdem stabilisiert sie vor allem in den Standard-Collections einige APIs und Trait-Implementierungen.
Dass die Neuheiten eher überschaubar sind, verwundert wenig: Das Team hat derzeit vor allem die kommende Edition Rust 2021 im Blick, die planmäßig mit dem übernächsten Release am 21. Oktober erscheinen soll. Die öffentliche Testphase zu der dritten Edition nach Rust 2015 und Rust 2018 hat vor Kurzem begonnen.
SIMD für WebAssembly
Das aktuelle Release stabilisiert einige intrinsische Funktionen für die wasm32-Plattform, mit denen sich SIMD-Instruktionen (Single Instruction, Multiple Data) umsetzen lassen. Da WebAssembly von Haus aus die Code-Safety vor dem Ausführen überprüft, garantiert die Zielplattform, dass die Anweisungen korrekt dekodiert werden.
Damit entfällt für die meisten intrinsischen Funktionen bei wasm32
die für x86
und x86_64
notwendige Prüfung, ob das entsprechende Feature auf der Zielplattform aktiviert ist. Einige Funktionen wie v128_bitselect
gelten damit als sichere Funktionen. Andere wie v128_load
sind jedoch als unsafe
deklariert, weil sie Rohzeiger (raw pointers) verwenden.
Ein Tüpfelchen auf dem ! für Makros
Neu ist zudem, dass Attribute nun funktionsähnliche Makros (function-like macros) enthalten dürfen. Als Anwendungsbeispiel nennt der Rust-Blog das Einfügen der Readme-Datei zu einem Projekt in die Dokumentationskommentare:
#![doc = include_str!("README.md")]
Die Makros innerhalb von Attributen dürfen durchaus verschachtelt sein.
Am 13. Oktober dreht sich auf der betterCode() Rust alles um die Programmiersprache Rust. Die von heise Developer und dpunkt.verlag ausgerichtete Online-Konferenz richtet sich vor allem an Entwicklerinnen und Entwickler, die Erfahrung in anderen Sprachen wie C, C++ oder Java haben und Rust für neue oder als Ergänzung bestehender Projekte im Blick haben.
Das Programm spannt den Bogen von den Grundlagen über Microservices bis zum praktischen Einsatz in sicherheitskritischen Anwendungen. Ein Blick auf die kommende Edition Rust 2021 ist ebenfalls dabei.
WebAssembly und Rust
Rust steht zuvor bereits im Zentrum eines Thementags der gleichen Veranstalter zu WebAssembly:
- Vortrag zum Bauen von Wasm-Anwendungen mit Rust (31. August)
- Ganztägiger Workshop zu Wasm-Modulen für den Browser mit Rust (1. September)
Schließlich hat das Rust-Team das inkrementelle Kompilieren wieder standardmäßig aktiviert. In Rust 1.52 hatten zusätzliche Überprüfungen beim Laden der kompilierten Daten aus dem Cache zu Problemen geführt, weshalb das Bugfix-Release 1.52.1 das inkrementelle Kompilieren standardmäßig deaktiviert hatte. Die Probleme sind nun offensichtlich behoben.
Weitere Details zu Rust 1.54 lassen sich dem Rust-Blog entnehmen. Die vollständige Liste der Änderungen und Neuerungen findet sich in den Release Notes. Wie üblich können Entwicklerinnen und Entwickler, die Rust bereits installiert haben, das aktuelle Release über rustup update stable
herunterladen. Für diejenigen, die noch kein Rust verwenden, ist das rustup-Tool auf der Download-Seite separat verfügbar.
Siehe dazu auch:
- Rust: Download sicher und schnell bei heise.de
(rme)