Veröffentlichung von GNU Mes 0.27, einem Tool zur eigenständigen Erstellung von Distributionen

Die Veröffentlichung des Tools GNU Mes 0.27 wurde veröffentlicht, das den Bootstrapping-Prozess für GCC unterstützt und einen geschlossenen Kreislauf der Neubau aus Quelltexten ermöglicht. Das Tool löst das Problem der verifizierten Erstkompilierung des Compilers in Distributionen, indem es die Kette der zyklischen Neubauten durchbricht (zum Kompilieren des Compilers sind ausführbare Dateien eines bereits gebauten Compilers erforderlich, und binäre Builds des Compilers können potenzielle Quellen für versteckte Backdoors sein, was eine vollständige Garantie für die Integrität der Builds aus den Referenz-Quelltexten unmöglich macht).

GNU Mes bietet einen autarken (self-hosting) Interpreter für die Programmiersprache Scheme, geschrieben in C, sowie einen einfachen Compiler für C (MesCC), der in Scheme geschrieben ist. Beide Komponenten sind gegenseitig kompilierbar. Der Scheme-Interpreter ermöglicht die Erstellung des C-Compilers MesCC, der wiederum die Erstellung einer abgespeckten Version des Compilers TinyCC (tcc) erlaubt, dessen Funktionen bereits ausreichen, um GCC zu erstellen.

Der Scheme-Interpreter ist sehr kompakt und umfasst etwa 5000 Codezeilen in einem einfachen Teilmenge der C-Sprache. Er kann in eine ausführbare Datei umgewandelt werden, indem der universelle Übersetzer M2-Planet oder ein einfacher C-Compiler verwendet wird, der mit einem selbstkompilierenden Assembler hex0 erstellt wurde, der keine externen Abhängigkeiten benötigt. Der Interpreter enthält einen vollwertigen Garbage Collector und bietet eine Bibliothek von nachladbaren Modulen. Das Projekt entwickelt auch die C-Bibliothek Mes C, die ausreicht, um glibc 2.2.5, binutils 2.20.1 und gcc 2.95.3 zu erstellen, die zur Bereitstellung der Distribution Guix für die Plattformen i686-linux, x86_64-linux, armhf-linux und aarch64-linux erforderlich sind, wobei nur die Quelltexte verwendet werden (Full Source Bootstrap).

In der neuen Version wurde die Unterstützung für den Betrieb von Mes in der GNU Hurd-Umgebung wiederhergestellt. Neue Module wurden hinzugefügt: rnrs (bitweise Arithmetik) und srfi (srfi-39). Um die Kompatibilität mit Guile zu gewährleisten, wird das Modul srfi standardmäßig geladen. Neue Funktionen wurden hinzugefügt: pair-for-each und with-fluids*. Im Compiler MesCC wurde die Möglichkeit zur Arbeit mit Modulen zur Generierung von Parsern und Lexern NYACC-Versionen von 0.99.0 bis 1.09.4 implementiert. Die Verwendung veralteter Module im mes-Stil für NYACC und MesCC wurde entfernt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4