Выпуск GNU Mes 0.19, инструментария для самодостаточной сборки дистрибутивов

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

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

В новом выпуске интерпретатора языка Scheme добавлена возможность работы со строками как с байтовыми массивами, появилась поддержка хэш-таблиц (тип hash_table) и структур (тип struct). Добавлена поддержка модулей, при помощи которых оформлен компонент boot-module. Производительность увеличена в 2–8 раз (Mes теперь в 2–10 раз медленнее Guile), например, сборка tinycc теперь занимает 8 минут вместо полтора часов. Упрощена система сборки. Добавлены реализации 44 новых функций. В Си-компитялтор MesCC включено 6 новых функций и 22 макроса, позволивших обеспечить сборку GNU Bash и GNU Tar.

В следующих выпусках ожидается появление возможности использования dietlibc и uClibc для бутстрэппинга GNU (bash, binutils, gcc, tar) и использования Gash вместо bash, coreutils, grep, sed и tar. В планах также заменена bootstrap-компонентов для NixOS, возможность прямой сборки gcc-3.x или 4.x без промежуточной сборки gcc 2.95.3, поддержка архитектуры ARM, дистрибутива Debian и ядра GNU Hurd.

© OpenNet