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
