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

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

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

Інтерпретатор мови Scheme досить компактний, займає близько 5000 рядків коду на найпростішому підмножині мови Сі і може бути перетворений у виконуваний файл з використанням універсального транслятора M2-Planet або найпростішого Сі-компілятора, зібраного з використанням ассамблера, що самозбирається, 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

Додати коментар або відгук