Das Rust-Projekt hat am 29. September 2016 Rust 1.12 veröffentlicht. Die neue Version bringt ein überarbeitetes Fehlermeldeformat für rustc und stellt ein neues Compiler-Backend auf Basis der Mid-level Intermediate Representation, kurz MIR, bereit. Die offizielle Ankündigung von Rust 1.12 nennt außerdem 1.361 eingegangene Änderungen.
Die neuen Diagnosen markieren die relevanten Stellen im Quellcode und erklären mit Beschriftungen, warum ein Fehler auftritt. Das Format wurde zunächst für Probleme mit dem Borrow Checker entwickelt, lässt sich laut Rust Core Team aber auf weitere Fehlertypen anwenden. Für automatisierte Werkzeuge stehen die Meldungen zusätzlich über die Option --error-format=json bereit. Die Release Notes zu Rust 1.12.0 führen die Änderungen im Detail auf.
MIR als neue Basis für das Compiler-Backend
Die Umstellung des Backends auf MIR bleibt zunächst weitgehend intern. Sie schafft laut Projekt jedoch die Grundlage für weitere Compiler-Optimierungen. Bei einigen Codebasen verkürzte sich bereits die Kompilierzeit, außerdem sank die Größe der erzeugten Programme. Für Teams, die hardwarenahen Code für Spiele, Tools oder andere interaktive Software bauen, ist die Trennung zwischen Quellcodeanalyse und Backend besonders bei späteren Optimierungen relevant.
Rust 1.12 ist als quelloffene Systemprogrammiersprache für Windows, Linux und macOS verfügbar. Die neue Diagnoseausgabe erleichtert die Fehlersuche direkt im Editor oder in Build-Systemen. Ein früherer Beitrag zu LLVM und Clang beschreibt einen ähnlichen Entwicklungsaspekt aus der C- und C++-Welt: Compilerwerkzeuge müssen Quellcode nicht nur übersetzen, sondern auch für Analyse, Debugging und mehrere Zielplattformen brauchbar bleiben.
