Випуск GNU Mes 0.22, інструментарію для самодостатнього збирання дистрибутивів

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

У GNU Mes пропонується самодостатній (self-hosting) інтерпретатор для мови Scheme, написаний мовою Сі, та найпростіший компілятор для мови Сі (MesCC), написаний мовою Scheme. Обидва компоненти взаємозбірні. Scheme-інтерпретатор дає можливість зібрати Сі-компілятор MesCC, який потім дозволяє зібрати урізану версію компілятора TinyCC (tcc), можливостей якого вже достатньо для збирання GCC.

Інтерпретатор мови Scheme досить компактний, займає близько 5000 рядків коду на найпростішому підмножині мови Сі і може бути перетворений на файл, що виконується з використанням універсального транслятора M2-Planet або найпростішого Сі-компілятора, зібраного з використанням ассамблера, що самозбирається. hex0не вимагає зовнішніх залежностей. При цьому інтерпретатор включає повноцінний збирач сміття і надає бібліотеку модулів, що завантажуються.

У новому випуску забезпечено підтримку повторюваних збірок з використанням зв'язок mes+mescc або guile+mescc у дистрибутивах GNU Guix, Debian GNU/Linux та NixOS. Додано можливість запуску Scheme-інтерпретатора Mes у GNU Hurd, але Сі-компілятор 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, повна підтримка модулів Guird, забезпечення роботи

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster