crustc wurde vorgestellt – der rustc-Compiler, der in C übersetzt wurde.

Der crustc-Compiler für die Sprache Rust wurde veröffentlicht. Er entstand durch die Transpilation des Codes des Standardcompilers rustc 1.98.0-nightly in die Programmiersprache C. Dabei wurden 46 Millionen Zeilen C-Code generiert, die mit GCC und dem Make-Tool kompiliert werden können. Der auf diese Weise erstellte Compiler besteht erfolgreich die Kompilierungstests von Rust-Code, wie zum Beispiel den Standard-Rust-Bibliotheken.

Das Projekt zeigt die Möglichkeiten des in Entwicklung befindlichen Compilers cilly, der es ermöglicht, Projekte von Rust in C zu transpillieren. Ziel dieser Transpilation ist es, die Kompilierung von ursprünglich in Rust geschriebenem Code in Systemumgebungen und Architekturen zu ermöglichen, die vom rustc-Compiler nicht unterstützt werden. Es entsteht ANSI C (C89) Code, was potenziell die Kompilierung von Projekten auf veralteten Systemen ermöglicht, die in LLVM und GCC nicht unterstützt werden, für die jedoch ein ANSI C-Compiler existiert. Der cilly-Compiler ist derzeit noch nicht öffentlich zugänglich und wird veröffentlicht, nachdem er bereit für umfangreiche Tests ist. An dem Projekt arbeitet seit drei Jahren ein einzelner Enthusiast.

Cilly wurde als Backend für rustc entwickelt, das die interne Darstellung von Rust in C-Quellcode überträgt. Ein besonderes Merkmal von Cilly ist, dass jede Übersetzung unter Berücksichtigung der spezifischen Plattform und des Ziel-C-Compilers erfolgt, mit dem das Programm erstellt werden soll. Während der Überprüfung erstellt Cilly ein Profil des Ziel-C-Compilers, indem es Tests anhand eines Satzes von Mini-Programmen durchführt, die die Unterstützung bestimmter Funktionen (z. B. _Thread_local) bewerten und plattformspezifische Details wie Typgrößen, Datenallokierung im Speicher und Layout von Strukturen bestimmen.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster