Пускането на GNU Mes 0.22, инструменти за самостоятелно сглобяване на дистрибуции.

Представено издание инструментария GNU Mes 0.22, осигуряваща процеса на бустрапинг (bootstrap) за GCC и позволяваща постигането на затворен цикъл на пресборка от изходни текстове.
Инструментариумът решава задачата за верифицирано начално изграждане на компилатора в дистрибуциите, прекъсвайки веригата на циклична пресборка (за изграждането на компилатора са необходими изпълними файлове, които вече са били компилирани, а бинарните версии на компилатора могат да бъдат потенциален източник на скрити задни врати, което не позволява напълно да се гарантира целостта на изгражданията от референтни изходни текстове).

В GNU Mes се предлага самостоятелен (self-hosting) интерпретатор за езика Scheme, написан на C, и прост най-основен компилатор за езика C (MesCC), написан на Scheme. И двата компонента могат да се събират взаимно. Интерпретаторът на Scheme предоставя възможност за изграждане на C компилатора MesCC, който след това позволява изграждането на олекотена версия на компилатора TinyCC (tcc), чиито възможности вече са достатъчни за изграждането на GCC.

Интерпретаторът на Scheme е доста компактен, изисква около 5000 реда код на най-основния подмножество на C и може да бъде преобразуван в изпълним файл с помощта на универсален транслаатор M2-Planet или най-основен C компилатор, сглобен с помощта на самосглобяващ се асемблер hex0, не изискващ външни зависимости. В същото време интерпретаторът включва пълен събирач на боклук и предоставя библиотека с зареждаеми модули.

В новото издание е осигурена поддръжка за повтарящи се изграждания с помощта на комбинациите mes+mescc или guile+mescc в дистрибуции на GNU Guix, Debian GNU/Linux и NixOS. Добавена е възможност за стартиране на интерпретатора на Scheme Mes в GNU Hurd, но C компилаторът mescc все още не работи поради липса на поддръжка на необходимите системни повици (например, fork/exec). Добавена е начална поддръжка за създаване на изпълними файлове FreeBSD. Подобрена е поддръжката за бустрапинг на дистрибуцията Guix, използвайки само компоненти на езика Scheme (команден интерпретатор Gash (Guile as Shell) вместо bash и Gash Core Utils вместо coreutils, grep, sed, gzip, make, awk и tar).

В следващите издания се очаква поддръжката на бутстрэпове за NixOS, включването на бутстрепинг само с компоненти на Scheme в клон wip-bootstrap, поддръжката на архитектурата ARM, възможността за компилация на Mes.c с M2-Planet, пълната поддръжка на модули Guile и осигуряването на работата на mescc с ядрото Hurd.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster