Veröffentlichung von GNU Mes 0.26, einem Tool zur autarken Erstellung von Distributionen

Die Veröffentlichung des Tools GNU Mes 0.26 wurde veröffentlicht, das den Bootstrap-Prozess fĂŒr GCC ermöglicht und einen geschlossenen Rekompilierungszyklus aus Quelltexten erreicht. Das Tool löst das Problem des verifizieren Anfangsbuilds des Compilers in Distributionen, indem es die Kette der zyklischen Rekompilierung unterbricht (fĂŒr den Bau eines Compilers sind bereits kompilierte ausfĂŒhrbare Dateien notwendig, und binĂ€re Compiler-Bauten sind potenzielle Quellen fĂŒr versteckte HintertĂŒren, die eine vollstĂ€ndige Garantie der IntegritĂ€t der Bauten aus Referenzquelltexten unmöglich machen).

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 UnterstĂŒtzung fĂŒr Module hinzugefĂŒgt, die vollstĂ€ndig mit Guile kompatibel sind, sowie die Möglichkeit, Gash und Gash-Utils auszufĂŒhren. Der Wechsel von assert zu Ausnahmen wurde vollzogen. UnterstĂŒtzung fĂŒr regulĂ€re AusdrĂŒcke wurde hinzugefĂŒgt. Es wurden neun neue Module implementiert (ftw, i18n, receive, regex, io ports, bytevectors, srfi-2, srfi-11 und srfi-37). 46 neue Funktionen wurden hinzugefĂŒgt, darunter chdir, clone-port, closedir, concatenate, drop, environ, execle, mkdir, opendir, partition, pipe, readdir, reduce, rmdir, seek, span, sleep, umask, uname und utimes. In zukĂŒnftigen Versionen wird UnterstĂŒtzung fĂŒr das Bootstrapping von NixOS nur aus Quelltexten erwartet, die Möglichkeit, gcc 4.6.4 zu bootstrappen, sowie die UnterstĂŒtzung fĂŒr den vollstĂ€ndigen Build des gesamten Systems aus Quelltexten in Linux-Umgebungen auf Basis der Architekturen armhf und riscv64.

Quelle: opennet.ru

60GB SSD 8Gb DDR4