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

Après un an de développement, la boîte à outils GNU Mes 0.23 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 assez compact, occupe 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 assemblé à l'aide du hexXNUMX auto-assemblé. assembleur, qui 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.

La nouvelle version inclut la prise en charge de l'architecture ARM (armhf-linux et aarch-linux). Ajout de la possibilité d'utiliser Mes avec un ensemble réduit de fichiers d'amorçage du projet GNU Guix (GNU Guix Reduction Binary Seed). Implémentation du support pour la création de Mes et de la bibliothèque Mes C à l'aide de GCC 10.x. Le compilateur MesCC fournit désormais sa propre bibliothèque libmescc.a (-lmescc), et lors de la construction avec GCC, "-lgcc" est désormais spécifié. Prise en charge de la création de MesCC avec Guile 3.0.x.

Source: opennet.ru

Ajouter un commentaire