Veröffentlichung von GNU Mes 0.26, einem Werkzeug für die autarke Erstellung von Distributionen

Die Version 0.26 des GNU Mes-Tools wurde veröffentlicht, das den Bootstrapping-Prozess für GCC ermöglicht und einen geschlossenen Kreislauf der Neubau-Umsetzungen aus Quelltexten erreicht. Das Werkzeug adressiert die Herausforderung einer verifizierten Anfangs-Baureihe des Compilers in Distributionen, indem es die Kette der zyklischen Neubauten durchbricht (für den Bau des Compilers sind bereits kompilierte ausführbare Dateien erforderlich, und binäre Compilerversionen können potenzielle versteckte Hintertüren enthalten, was eine vollständige Garantie der Integrität aus den Referenz-Quelltexten unmöglich macht).

GNU Mes bietet einen selbstlaufenden (self-hosting) Interpreter für die Programmiersprache Scheme, der in C geschrieben ist, sowie einen einfachen Compiler für C (MesCC), der in Scheme geschrieben wurde. Beide Komponenten sind gegenseitig kompilierbar. Der Scheme-Interpreter ermöglicht den Bau des C-Compilers MesCC, der dann zur Erstellung einer abgespeckten Version des Compilers TinyCC (tcc) verwendet werden kann, dessen Funktionen bereits ausreichend sind, um GCC zu kompilieren.

Der Scheme-Interpreter ist äußerst kompakt und umfasst etwa 5000 Zeilen Code für eine einfachste Untermenge der Programmiersprache C. Er kann über den universellen Übersetzer M2-Planet oder einen einfachen C-Compiler, der mit dem selbstbauenden Assembler hex0 erstellt wurde und keine externen Abhängigkeiten benötigt, in eine ausführbare Datei umgewandelt werden. Der Interpreter umfasst einen vollständigen Garbage Collector und stellt eine Bibliothek für dynamisch ladbare Module zur Verfügung. Das Projekt entwickelt zudem die C-Bibliothek Mes C, die ausreichend ist, um glibc 2.2.5, binutils 2.20.1 und gcc 2.95.3 zusammenzustellen, die benötigt werden, um die Guix-Distribution für Plattformen wie i686-linux, x86_64-linux, armhf-linux und aarch64-linux zu implementieren, wobei ausschließlich Quelltexte (Full Source Bootstrap) verwendet werden.

Die neue Version bietet Unterstützung für Module, die vollständig mit Guile kompatibel sind, und ermöglicht die Ausführung von Gash und Gash-Utils. Der Übergang von assert zu Ausnahmeregulierungen wurde vollzogen. Unterstützung für reguläre Ausdrücke wurde hinzugefügt. Neun neue Module wurden implementiert (ftw, i18n, receive, regex, io ports, bytevectors, srfi-2, srfi-11 und srfi-37). Es wurden 46 neue Funktionen 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 ist die Unterstützung für das Bootstrapping von NixOS ausschließlich aus Quelltexten vorgesehen, ebenso die Möglichkeit des Bootstrappings von gcc 4.6.4 sowie die Unterstützung für die vollständige Erstellung des gesamten Systems aus Quelltexten in Linux-Umgebungen, die auf den Architekturen armhf und riscv64 basieren.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster