След година разработка, беше пусната GNU Mes 0.23, инструментариум, който осигурява процеса на бутстрепинг (bootstrap) за GCC и позволява постигането на затворен цикъл на преремонт от изходните кодове. Инструментарият решава проблема с верифицираното начално изграждане на компилатора в дистрибуции, прекъсвайки цикличната верига на пренатягане (за изграждането на компилатора са необходими изпълними файлове на вече изградени компилатори, а бинарните сборки на компилатора са потенциален източник на скрити заложби, което не позволява пълна гаранция за целостта на сборките от референтните изходни текстове).
В GNU Mes се предлага самостоятелен интерпретатор за езика Scheme, написан на C, и най-простият компилатор за езика C (MesCC), написан на Scheme. И двата компонента са взаимно спомагателни. Интерпретаторът на Scheme позволява да се компилира C-компилаторът MesCC, който след това може да компилира ограничената версия на компилатора TinyCC (tcc), чиито възможности вече са достатъчни за компилиране на GCC.
Интерпретаторът на езика Scheme е доста компактен, заема около 5000 реда код на най-простото подмножество на C и може да бъде преобразуван в изпълним файл с помощта на универсалния транслятор M2-Planet или най-простия C компилатор, построен с помощта на самоизграждащия се асемблер hex0, който не изисква външни зависимости. В същото време интерпретаторът включва пълноценен модул за събиране на боклук и предоставя библиотека за зареждаеми модули.
В новото издание е реализирана поддръжка за архитектурата ARM (armhf-linux и aarch-linux). Добавена е възможност за използване на Mes заедно със съкратен набор от bootstrap файлове от проекта GNU Guix (GNU Guix Reduced Binary Seed). Реализирана е поддръжка за изграждане на Mes и библиотеката Mes C с използване на GCC 10.x. В компилятора MesCC е осигурена доставка на собствена библиотека libmescc.a (-lmescc), а при изграждане с GCC сега се посочва „-lgcc“. Осигурена е поддръжка за изграждане на MesCC с Guile 3.0.x.
Източник: opennet.ru
