gccrs wird in GCC 13 integriert

gccrs

gccrs ist eine vollständige alternative Implementierung der Rust-Sprache über GCC

Kürzlich wurde bekannt gegeben, dass das Projekt „gccrs“ , das eine Schnittstelle zwischen der Programmiersprache Rust und GCC (GNU Compiler Collection) bereitstellen soll, planmäßig in GCC 13 integriert werden wird. Auf der Entwicklerkonferenz FOSDEM Anfang dieses Monats hielt der Ingenieur Arthur Cohen eine Präsentation über gccrs und erläuterte den aktuellen Stand der Arbeiten.

Für diejenigen, die mit dem gccrs-Projekt nicht vertraut sind: Es handelt sich um eine völlig alternative Implementierung der Programmiersprache Rust auf Basis von GCC mit dem Ziel, vollständig in die GNU-Toolchain integriert zu werden.

Der Ursprung dieses Projekts ist eine Gemeinschaftsarbeit vor einigen Jahren, als Rust noch bei Version 0.9 war; Die von Mozilla entwickelte Sprache war so vielen Änderungen unterworfen, dass es für eine Community-Bemühung schwierig wurde, aufzuholen.

Jetzt, da die Sprache stabil ist, ist es an der Zeit, alternative Compiler zu erstellen:

„Begonnen im Jahr 2014 (und neu gestartet im Jahr 2019), laufen die Bemühungen seit 2020 und wir haben uns sehr bemüht und viele Fortschritte gemacht. Wir haben die erste Version von gccrs in GCC hochgeladen. Wenn Sie also das nächste Mal GCC 13 installieren, enthält es gccrs.

Sie können es verwenden und anfangen, es zu hacken, Sie können die Probleme melden, wenn es unweigerlich abstürzt und schrecklich stirbt. Eine große Sache, die wir tun, ist daran zu arbeiten, dass die rustc-Testsuite funktioniert“, sagte Arthur Cohen während seiner Präsentation auf der FOSDEM-Konferenz Anfang dieses Monats.

Die erfolgreiche Ausführung der rustc-Compiler-Testsuite bleibt ebenfalls ein Ziel. Laut Cohen zielt die GCC-Schnittstelle von Rust auch auf die ältere Rust-libcore-Version 1.49 ab.

In den FAQs des gccrs-Projekts wird darauf hingewiesen, dass allen LLVM-Build-Technologien, die Rust verwendet, „einige GCC-kompatible Backends fehlen, sodass eine gccrs-Implementierung die Lücken für die Verwendung in der integrierten Entwicklung schließen kann .“

Beachten Sie jedoch, dass sich der Rust-GCC-Compiler (gccrs) noch in einem sehr frühen Stadium befindet und noch nicht zum Kompilieren tatsächlicher Rust-Programme verwendet werden kann.

Das GCC-Team stimmte im Juli letzten Jahres für die Integration von gccrs als Build-Suite. Die Bedeutung dieses Projekts liegt in seiner Relevanz für den Linux-Kernel. Tatsächlich wird der Linux-Kernel üblicherweise mit GCC kompiliert, doch die Pläne, die Verwendung der Programmiersprache Rust neben C für Kernelcode aus Gründen der Speichersicherheit zu ermöglichen, schreiten stetig voran.

Das „Rust for Linux“-Projekt wurde im vergangenen Oktober offiziell in den Git-Baum von Linux 6.1 integriert, wodurch Rust nach 31 Jahren ausschließlich C-basierter Entwicklung zur zweiten Sprache für die Linux-Entwicklung wurde.

„Wir wollen, dass gccrs ein echter Rust-Compiler ist und kein Spielzeugprojekt oder etwas, das eine Sprache kompiliert, die wie Rust aussieht, aber nicht Rust ist; Wir versuchen wirklich, diese Testsuite zum Laufen zu bringen“, fügte er hinzu. Während der Präsentation sagte Cohen auch, dass die Rust-Oberfläche von GCC 13 zwar einen guten Start hingelegt habe, aber noch viel zu tun sei. Geliehener Verifizierungscode fehlt derzeit auffällig, die Unterstützung für eingebaute und intrinsische Module ist noch im Gange, und der wichtige Meilenstein der Kompilierung von Rust-Code für Linux muss noch erreicht werden.

Zur Erinnerung: Das Rust-for-Linux-Projekt hat zum Ziel, eine neue Systemprogrammiersprache in den Linux-Kernel zu integrieren. Experten zufolge besitzt Rust eine entscheidende Eigenschaft, die es als zweite Sprache für den Linux-Kernel besonders interessant macht: Es stellt sicher, dass kein undefiniertes Verhalten auftritt (vorausgesetzt, der unsichere Code ist korrekt).

Dazu gehört das Fehlen von Fehlern wie After-Free-Use, Double-Frees, Data Races etc. Verwandte Debatten drehen sich um die Möglichkeit, C zugunsten der Rust-Sprache aufzugeben. Aber Linus Torvalds, der Schöpfer von Linux, sagte, dass dies nicht das erklärte Ziel des Rust for Linux-Projekts sei.

Abschließend sei noch erwähnt, dass die gccrs-Schnittstelle zwar für die kommende GCC 13-Version integriert wurde, sich aber noch nicht in einem Zustand befindet, in dem die meisten Rust-Entwickler sie tatsächlich als Alternative zum offiziellen LLVM-Compiler von Rust verwenden können .

Es sollte nicht vor dem nächsten Jahr sein, zumindest mit GCC 14 zumindest.

Quelle: https://fosdem.org/


Als bevorzugte Quelle in Google hinzufügen