Выпуск GNU Mes 0.19, инструментария для самодостаточной сборки дистрибутивов
17 декабря 2018 года
Представлен выпуск инструментария 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.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.