Sortie de GNU Mes 0.25, un outil pour la construction autonome de distributions

Après un an et demi de développement, la sortie de l'outil GNU Mes 0.25 a eu lieu, facilitant le processus de bootstrap pour GCC et permettant d'atteindre un cycle de reconstruction fermé à partir de sources. Cet outil répond aux exigences d'une construction initiale vérifiée du compilateur dans les distributions, rompant la chaîne de reconstruction cyclique (la construction du compilateur nécessite des fichiers exécutables d'un compilateur déjà construit, tandis que les versions binaires du compilateur représentent une source potentielle de portes dérobées, ce qui ne permet pas de garantir complètement l'intégrité des constructions à 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).

Le nouveau volet introduit la prise en charge de l'architecture RISC-V (RISC-V64-linux) et celle de la compilation avec le transpilateur M2-Planet. La compilation avec la version M2-Planet 1.11.0 pour la plateforme cible x86_64-linux est prise en charge. L'indication du mode « —bootstrap-mode » lors de l'utilisation de M2-Planet n'est plus requise. Dans MesCC, des problèmes de compatibilité avec les versions de GCC 10+ ont été résolus, l'initialisation des champs de structures à la valeur 0 a été assurée et la possibilité de déboguer des fichiers binaires au niveau de fonctions individuelles a été restaurée.

Les prochaines versions attendent la prise en charge du bootstrapping de NixOS uniquement à partir des sources, la compatibilité avec les modules totalement compatibles avec Guile, la possibilité de lancer Gash et Gash-Utils, la prise en charge du bootstrapping de gcc 4.6.4, ainsi que la possibilité de compiler entièrement l'ensemble du système à partir des sources dans des environnements Linux basés sur les architectures armhf et riscv64.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster