Veröffentlichung von GNU Mes 0.23, einem Toolkit für den Aufbau eigenständiger Distributionen

Nach einem Jahr der Entwicklung wurde das GNU Mes 0.23-Toolkit veröffentlicht, das einen Bootstrap-Prozess für GCC bereitstellt und einen geschlossenen Zyklus der Neuerstellung aus dem Quellcode ermöglicht. Das Toolkit löst das Problem der verifizierten anfänglichen Compiler-Assemblierung in Distributionen und unterbricht die Kette der zyklischen Neuerstellung (die Erstellung eines Compilers erfordert ausführbare Dateien eines bereits erstellten Compilers, und binäre Compiler-Assemblys sind eine potenzielle Quelle versteckter Lesezeichen, was keine vollständige Garantie ermöglicht die Integrität von Assemblys aus Referenzquellcodes).

GNU Mes bietet einen selbsthostenden Interpreter für die Scheme-Sprache, geschrieben in der C-Sprache, und einen einfachen Compiler für die C-Sprache (MesCC), geschrieben in der Scheme-Sprache. Beide Komponenten sind untereinander montierbar. Der Scheme-Interpreter ermöglicht die Erstellung des MesCC-C-Compilers, der es Ihnen dann ermöglicht, eine abgespeckte Version des TinyCC-Compilers (tcc) zu erstellen, dessen Fähigkeiten bereits für die Erstellung von GCC ausreichen.

Der Scheme-Sprachinterpreter ist recht kompakt, nimmt etwa 5000 Codezeilen in der einfachsten Teilmenge der C-Sprache ein und kann mit dem M2-Planet-Universalübersetzer oder einem einfachen C-Compiler, der mit dem selbstassemblierten hex0 zusammengestellt wurde, in eine ausführbare Datei konvertiert werden Assembler, der keine externen Abhängigkeiten erfordert. Gleichzeitig enthält der Interpreter einen vollwertigen Garbage Collector und stellt eine Bibliothek ladbarer Module bereit.

Die neue Version beinhaltet Unterstützung für die ARM-Architektur (armhf-linux und aarch-linux). Es wurde die Möglichkeit hinzugefügt, Mes zusammen mit einem reduzierten Satz von Bootstrap-Dateien aus dem GNU Guix-Projekt (GNU Guix Reduced Binary Seed) zu verwenden. Unterstützung für die Erstellung von Mes und der Mes C-Bibliothek mit GCC 10.x implementiert. Der MesCC-Compiler liefert jetzt seine eigene libmescc.a-Bibliothek (-lmescc) aus, und beim Erstellen mit GCC wird jetzt „-lgcc“ angegeben. Unterstützung für die Erstellung von MesCC mit Guile 3.0.x bereitgestellt.

Source: opennet.ru

Kommentar hinzufügen