Veröffentlichung der Werkzeuge , das den Bootstrapping-Prozess fĂŒr GCC ermöglicht und einen geschlossenen Reparateurzyklus aus Quelltexten erreicht.
Das Tool löst die Aufgabe einer verifiziert initialen Compiler-Bau in Distributionen und durchbricht die Kette der zyklischen Neubauten (fĂŒr den Bau eines Compilers sind ausfĂŒhrbare Dateien eines bereits gebauten Compilers erforderlich, und binĂ€re Compiler-Bauten sind potenzielle Quellen fĂŒr versteckte HintertĂŒren, was eine vollstĂ€ndige Garantie der IntegritĂ€t von Bauten aus Referenz-Quelltexten ausschlieĂt).
In GNU Mes ein selbstgenĂŒgsamer (self-hosting) Interpreter fĂŒr die Programmiersprache Scheme, geschrieben in C, und ein einfachster Compiler fĂŒr die Programmiersprache C (MesCC), geschrieben in Scheme. Beide Komponenten sind gegenseitig compilierbar. Der Scheme-Interpreter ermöglicht es, den C-Compiler MesCC zu bauen, der dann eine abgespeckte Version des Compilers (tcc) bereitstellt, dessen Funktionen bereits ausreichend sind, um GCC zu bauen.
Der Interpreter der Scheme-Sprache ist recht kompakt, umfasst etwa 5000 Zeilen Code in dem einfachsten Teilmenge der Programmiersprache C und kann mit einem universellen Transpiler oder einem einfachen C-Compiler, der mit einem sich selbst bauenden Assembler erzeugt wurde, in eine ausfĂŒhrbare Datei umgewandelt werden. , der keine externen AbhĂ€ngigkeiten benötigt. Zudem enthĂ€lt der Interpreter einen vollwertigen Garbage Collector und stellt eine Bibliothek von Ladbaren Modulen bereit.
Im neuen Release wurde die UnterstĂŒtzung fĂŒr reproduzierbare Bauten unter Verwendung der Kombinationen mes+mescc oder guile+mescc in den Distributionen GNU Guix, Debian GNU/Linux und NixOS gewĂ€hrleistet. Die Möglichkeit wurde hinzugefĂŒgt, den Scheme-Interpreter Mes unter GNU Hurd zu starten, aber der C-Compiler mescc funktioniert noch nicht aufgrund der fehlenden UnterstĂŒtzung notwendiger Systemaufrufe (z.B. fork/exec). Erste UnterstĂŒtzung fĂŒr die Erstellung von ausfĂŒhrbaren Dateien unter FreeBSD wurde hinzugefĂŒgt. Die UnterstĂŒtzung fĂŒr das Bootstrapping der Guix-Distribution wurde verbessert, wobei nur Komponenten in der Sprache Scheme verwendet werden (die Kommandozeile Gash (Guile as Shell) anstelle von bash und Gash Core Utils anstelle von coreutils, grep, sed, gzip, make, awk und tar).
In den kommenden Veröffentlichungen wird die UnterstĂŒtzung fĂŒr Bootstrapping fĂŒr NixOS erwartet, die Einbeziehung von Bootstrapping, das ausschlieĂlich mit Komponenten auf Scheme-Basis in der wip-bootstrap-Zweig unterstĂŒtzt sowie die UnterstĂŒtzung der ARM-Architektur, die Möglichkeit, Mes.c mit M2-Planet zu kompilieren, vollstĂ€ndige UnterstĂŒtzung von Guile-Modulen und die Sicherstellung, dass mescc mit dem Hurd-Kernel funktioniert.
Quelle: opennet.ru
