Sortie de GNU Mes 0.25, une boîte à outils pour la création de distribution autonome

Après un an et demi de développement, la boîte à outils GNU Mes 0.25 a été publiée, fournissant un processus d'amorçage pour GCC et permettant un cycle fermé de reconstruction à partir du code source. La boîte à outils résout le problème de l'assemblage initial vérifié du compilateur dans les distributions, brisant la chaîne de reconstruction cyclique (la construction d'un compilateur nécessite des fichiers exécutables d'un compilateur déjà construit, et les assemblages de compilateurs binaires sont une source potentielle de signets cachés, ce qui ne permet pas de garantir pleinement l'intégrité des assemblages à partir des codes sources de référence).

GNU Mes propose un interpréteur auto-hébergé pour le langage Scheme, écrit en langage C, et un compilateur simple pour le langage C (MesCC), écrit en langage Scheme. Les deux composants sont interassemblables. L'interpréteur Scheme permet de construire le compilateur MesCC C, qui permet ensuite de construire une version allégée du compilateur TinyCC (tcc), dont les capacités sont déjà suffisantes pour construire GCC.

L'interpréteur du langage Scheme est très compact, prend environ 5000 2 lignes de code dans le sous-ensemble le plus simple du langage C et peut être converti en fichier exécutable à l'aide du traducteur universel M0-Planet ou d'un simple compilateur C compilé à l'aide d'un assembleur hex2.2.5 à auto-assemblage. cela ne nécessite pas de dépendances externes. Dans le même temps, l'interpréteur comprend un garbage collector à part entière et fournit une bibliothèque de modules chargeables. Le projet développe également la bibliothèque Mes C C, suffisante pour construire glibc 2.20.1, binutils 2.95.3 et gcc 686, nécessaires au déploiement de la distribution Guix pour i86-linux, x64_64-linux, armhf-linux et aarchXNUMX. -plateformes Linux, utilisant uniquement les codes sources (Full Source Bootstrap).

La nouvelle version introduit la prise en charge de l'architecture RISC-V (RISC-V64-linux) et ajoute la prise en charge de la compilation à l'aide du transpileur M2-Planet. Assemblage pris en charge avec la version M2-Planet 1.11.0 pour la plateforme cible x86_64-linux. La spécification de "--bootstrap-mode" lors de l'utilisation de M2-Planet n'est plus nécessaire. MesCC résout les problèmes de compatibilité avec les versions GCC 10+, garantit que les champs de structure sont initialisés à 0 et restaure la possibilité de déboguer les fichiers binaires au niveau des fonctions individuelles.

Dans les versions futures, nous nous attendons à voir la prise en charge du démarrage de NixOS uniquement à partir des sources, la prise en charge de modules entièrement compatibles avec Guile, la possibilité d'exécuter Gash et Gash-Utils, la prise en charge du démarrage de gcc 4.6.4, ainsi que la possibilité de construisez 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

Ajouter un commentaire