Das Komitee, das die Entwicklung des GCC-Compiler-Sets leitet (GCC Steering Committee), hat die Integration der Rust-Compiler-Implementierung, die vom gccrs-Projekt (GCC Rust) vorbereitet wurde, in die Hauptversion von GCC genehmigt. Nach der Integration des Frontends kann das statische GCC-Toolset verwendet werden, um Programme in Rust zu kompilieren, ohne einen rustc-Compiler installieren zu müssen, der mit LLVM-Technologie erstellt wurde.
Die Entwickler von gccrs wurden aufgefordert, mit den Teams zusammenzuarbeiten, die für die Überprüfung von Änderungen und die Vorbereitung von GCC-Veröffentlichungen zuständig sind, um eine abschließende Überprüfung und Genehmigung der Patches hinsichtlich der Einhaltung technischer Anforderungen für den in GCC hinzugefügten Code sicherzustellen. Sollte die Entwicklung von gccrs nach dem zuvor festgelegten Zeitplan fortgesetzt werden und keine unvorhergesehenen Probleme auftauchen, wird das Frontend für Rust in die GCC 13-Version integriert, die für Mai nächsten Jahres geplant ist. Die Implementierung von Rust in GCC 13 wird im Beta-Status sein und nicht standardmäßig aktiviert werden.
Die Programmiersprache Rust konzentriert sich auf die sichere Handhabung von Speicher und bietet Werkzeuge, um eine hohe Parallelität bei der Ausführung von Aufgaben zu erreichen. Sichere Speicherhandhabung, die Fehler wie das Zugreifen auf freigegebenen Speicher, das Dereferenzieren von Null-Pointern und das Überschreiten von Puffergrenzen ausschließt, wird in Rust während der Kompilierung durch Überprüfung von Referenzen, Verfolgung des Eigentums an Objekten, Berücksichtigung der Lebensdauer von Objekten (Sichtbarkeit) und der Überprüfung des Zugriffs auf den Speicher während der Codeausführung erreicht. Rust bietet auch Werkzeuge zum Schutz vor ganzzahligen Überläufen und verlangt die obligatorische Initialisierung von Variablenwerten vor der Verwendung, behandelt Fehler in der Standardbibliothek besser, verwendet das Konzept der Immutabilität für Referenzen und Variablen standardmäßig und bietet eine starke statische Typisierung zur Minimierung logischer Fehler.
Quelle: opennet.ru
