La publication de l'outil GNU Mes 0.27 a été annoncée, permettant le processus de bootstrap pour GCC et permettant d'atteindre un cycle de reconstruction fermé à partir des sources. Cet outil résout le problÚme de l'initialization vérifiée du compilateur dans les distributions, brisant la chaßne de reconstruction cyclique (la compilation d'un compilateur nécessite des fichiers exécutables déjà compilés, et les compilations binaires du compilateur peuvent contenir des backdoors cachées, ce qui ne permet pas de garantir l'intégrité des compilations à partir des sources de référence).
GNU Mes propose un interpréteur autonome pour le langage Scheme, écrit en C, ainsi qu'un compilateur simple pour le langage C (MesCC), écrit en Scheme. Les deux composants sont mutuellement assemblables. L'interpréteur Scheme permet de compiler le compilateur C MesCC, qui à son tour permet de compiler une version allégée du compilateur TinyCC (tcc), dont les fonctionnalités sont suffisantes pour compiler GCC.
L'interprĂ©teur du langage Scheme est trĂšs compact, comptant environ 5000 lignes de code utilisant un sous-ensemble simple du langage C, et peut ĂȘtre transformĂ© en un fichier exĂ©cutable Ă l'aide du traducteur universel M2-Planet ou d'un compilateur C simple, assemblĂ© avec un assembleur auto-assemblant hex0, ne nĂ©cessitant pas de dĂ©pendances externes. L'interprĂ©teur inclut Ă©galement un ramasse-miettes complet et fournit une bibliothĂšque de modules chargĂ©s. Le projet dĂ©veloppe Ă©galement la bibliothĂšque C Mes, suffisante pour assembler glibc 2.2.5, binutils 2.20.1 et gcc 2.95.3, nĂ©cessaires pour dĂ©ployer la distribution Guix sur les plateformes i686-linux, x86_64-linux, armhf-linux et aarch64-linux, en utilisant uniquement les sources (Full Source Bootstrap).
Dans cette nouvelle version, le support pour exécuter Mes dans l'environnement GNU Hurd a été rétabli. Nouvelles modules ajoutés : rnrs (arithmétique bit à bit) et srfi (srfi-39). Pour la compatibilité avec Guile, le module srfi est chargé par défaut. Nouvelles fonctions ajoutées : pair-for-each et with-fluids*. Le compilateur MesCC permet désormais de travailler avec des modules pour générer des parseurs et des analyseurs lexicaux NYACC de la version 0.99.0 à 1.09.4. L'utilisation des anciens modules de style mes pour NYACC et MesCC a été supprimée.
Source : opennet.ru
