Представлен (https://www.mail-archive.com/info-gnu@gnu.org/msg02531....) выпуск инструментария GNU Mes 0.19 (https://www.gnu.org/software/mes), обеспечивающего процесс бутстрэппинга (bootstrap) для GCC. Инструментарий решает задачу верифицированной начальной сборки компилятора в дистрибутивах, разрывая цепочку цикличной пересборки (для сборки компилятора требуются исполняемые файлы уже собранного компилятора).В GNU Mes предлагается (https://www.opennet.dev/opennews/art.shtml?num=49188) самодостаточный (self-hosting) интерпретатор для языка Scheme, написанный на языке Си, и простейший компилятор для языка Си (MesCC), написанный на языке Scheme. Оба компонента взаимособираемы. Scheme-интерпретатор даёт возможность собрать Си-компилятор MesCC, который затем позволяет собрать урезанную версию компилятора TinyCC (https://gitlab.com/janneke/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.
URL: https://www.mail-archive.com/info-gnu@gnu.org/msg02531....
Новость: https://www.opennet.dev/opennews/art.shtml?num=49795
С боку темы. Всем кто еще не вкурсе, есть клевый проект https://github.com/crosstool-ng/crosstool-ng/ , который позволит собрать gcc и весь тулчейн нужной версии. Не только для какой-то железки, а и для локального использования, для всяких упражнений.
ну типа выглядело клево, пока не прочитал вот это:
"macOS is no longer supported
[skip расписывания в собственной беспомощности и отсутствии желания]I am hereby declaring macOS unsupported. Any issues reported for macOS build/host triplets will be closed.
"
то есть хорошо побеленный гроб превращается в украшение помещения.чтоб проблемы ниггеров шерифу даже видны не были.
знаете что, я пока еще могу тулчейн и вручную собрать для элементарных случаев. А для неэлементарных ты, Алешенька, все равно "any issues will be closed".
Мак то для этого всего зачем?
это ты где такое прочитал?я для макоси собираю на основе вот этого https://github.com/tpoechtrager/osxcross/ под линухом
> это ты где такое прочитал?http://crosstool-ng.github.io/
прямо посередь страницы
> я для макоси собираю на основе вот этого https://github.com/tpoechtrager/osxcross/ под
> линухомда я собрать-то и без алешеньки соберу, если оно в принципе собираемо (если нет, то и тулза не поможет) просто смешны заявки на универсальную автоматизацию с таким вот объявлением. Понятно что и любые другие непонравившиеся ему тикеты будут закрыты, чтоб не огорчать взора. А на практике, полагаю, работает на тех полутора платформах, на которых автор сам что-то изредка собирает, и еще на паре по чистой случайности.
> ну типа выглядело клево, пока не прочитал вот это:
> "macOS is no longer supportedНу вы там хотели шланг и отлизывать эпплу - нафига вам кроссплатформенность какая-то сдалась?
А самопроверяющийся иструмент для проверки исходников как себя, так и всего дистрибутива от закладок/ошибок и т п где? А то для слабоков, неспособных сразу в двоичке/шеснадцатиричке написать компилятор с помощью таблицы команд инструмент сделали, а для неспособных маломальский объём кода "глазками" проверить - нечего...
> А самопроверяющийся иструмент для проверки исходников как себя, так и всего дистрибутива от закладок/ошибок и т п где?Там же, где и самопроверяющийся инструмент для проверки как себя, так и других программ на корректное срабатывание и завершение.
> А то для слабоков [...] нечего...
Да ладно -- некоторые и пару предложений глазками проверить не могут.
Для этого придумали тесты и хеш суммы. Хотя кого я обманываю.
> от закладок/ошибок и т п где?Ты даже свое сообщение то на ошибки проверить не смог. А туда же, программы в двоичных кодах. Если прогу тумблерами на шину вбивать - там 1 ошибка может оказаться фатальной.
Таки и не пытался, также, как и тратить массу времени на копания в исходниках операционки и прикладного ПО... Да и в пересборе бинарников смысла не вижу никакого - всё равно исходники не проверял :)
Такие инициативы, как в новости, вводят в заблуждение о "безопастности", опуская уровень технических знаний масс :)
Про "1 ошибку" - с перфокартами работал, знаю, но фатальность преувеличенна...
> "безопастности"facepalm.jpg
> А самопроверяющийся иструмент для проверки исходников как себя, так и всего дистрибутива
> от закладок/ошибок и т п где?Он занят. Работает над ответом "42". Не отвлекайте.
из новости можно подумать что речь идёт о 2х бинарниках Scheme и MesCC которые надо по кругу пересобирать и которые могут быть с закладками.пройдя по ссылкам я прочитал что всё более затейливо.
есть небольшой бинарный код (также приводят асм код для проверки) текстового редакта и асм компилятор в одном лице - Hex0_monitor. который можно вбить вручную. использовать этот бинарник его как бут сектор, запустить.
далее им собирается асм компилятор Hex0. который в свою очередь собирает примитивный С компилятор. дальше собираем Scheme. им MesCC. им TinyCC. им gcc 2.95.3. им gcc3. им gcc4.7 на и далее по цепочке до gcc 8 кому нада.
> им MesCC. им TinyCC. им gcc 2.95.3. им gcc3. им gcc4.7 на и далее по цепочке до gcc 8А что такой способ долгий? C gcc поновее начать нельзя?
В GCC 4.8 и новее есть код на C++. TinyCC вряд ли в него сможет.
Я конечно понимаю для чего эту карусель разводить, но имхо, проще с ГЦЦ начинать сразу, а освободившееся время потратить на ГЦЦ. Оно и вообще полезнее будет.
> А что такой способ долгий? C gcc поновее начать нельзя?немодно. А скоро, полагаю, сломают.
>который можно вбить вручнуюНостальгия: Радио-86РК, Специалист
> всё более затейливоа прошивку микрокода они почему забыли? Verilog опять же тоже самим собирать нужно, если дальше пойти. Потом нужно и свой фэб построить, а то не известно что китайцы в процессе еще в шаблон дорисуют. Оборудование для фэба тоже нужно свое склепать, китайское уже нельзя..
> а прошивку микрокода они почему забыли?Потому что ее может и не быть.
> Verilog опять же тоже самим собирать нужно, если дальше пойти.
Следите за новостями...
> то не известно что китайцы в процессе еще в шаблон дорисуют.
Они смогут это сделать, не сломав дизайн? :)
> Оборудование для фэба тоже нужно свое склепать, китайское уже нельзя..
Так, а руду для дорожек на плате надо самому накопать? А то вдруг китайцы в нее нассут или каким-то гавонм разбавят?!
> Так, а руду для дорожек на плате надо самому накопать? А то вдруг китайцы в нее нассут или каким-то гавонм разбавят?!Тоньше надо. Сначала следует создать государство в котором можно будет вручную разведать месторождение руды из которой будет в дальнейшем сделан экскаватор для добычи руды для дорожек и будут зачаты правильные китайцы, которые не нассут...
Ввыходит, чуваки не то, что решили проблему "курицы и яйца" - они воссоздали эволюцию (кода) в миниатюре ;)
Почти развитие TinyCC Boot Loader (https://bellard.org/tcc/tccboot.html) :)