После полутора лет разработки состоялся выпуск инструментария GNU Mes 0.25, обеспечивающего процесс бутстрэппинга (bootstrap) для GCC и позволяющего добиться замкнутого цикла пересборки из исходных текстов...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=60097
Больше всего меня поражает такое длительное время между стабильными релизами у опенсурц проектов. Этим они стреляют себе в ногу. Обыватель не будет качать найтли или, не дай бог, собирать их из сурцов. Он скачает офф стабильный релиз. Которому два года и не такой уж он и стабильный - в нем куча багов. Что сделает обыватель, когда эта поделка не заведется изкоробки? Он свалит к проприетарщикам, у которых релизы вылизаны до идеала. Яркий пример - Code::Blocks, у который в последнем релизе поломан копипстинг, что очень сильно раздражает.
Некогда нам, вам нужно вы и собирайте. А мы никому ничего не должны, пусть нас проект будет в жопе все равно мы бесплатно пашем.
И вообще, какое вам дело до качества, наш код открыт, вот и молитесь на нас теперь!
Всё правильно сказано. Опенсорс проекты - это не халява и не бесплатный труд, а решение исключительно своих проблем. Хотите чтобы кто-то решал чужие? Заплатите ему за это. Или face your problems yourself. Опенсорс - не коммунизм.
Получается лучше спиратить проприетарь, чем надеяться, что в попенсорсных аналогах что-то будет работать. Теперь я понимаю почему у нас попенсорс не развит.......
Спиратить проприетарь с интегрированной малварью. Сейчас не нулевые, теперь почти всегда так. Если вас такое устраивает - то да.
На приватных трекерах нет никакой малвари.
Дважды наивный. 1. малварь от разработчика идёт, напр. "телеметрия" и прочие закладки для отслеживания нелицензионных установок. 2. С какой стати на приватных нет? Даже если приклеенная малварь не распространяется в сговоре с модератором (а зачастаю она распространяется именно в сговоре с модератором, который оперативно трёт все сообщения с жалобами на малварь, в том числе пруфами уровня детальной пошаговой инструкции по отклеиванию), прибыль от малвари позволит новый аккаунт купить и окупить в маловероятном случае бана.
Потому что трекеров больше, чем один, везде не потрешь отзывы. И репутация зарабатывается годами, а теряется моментально.
Секрета не открою, когда скажу, что на репутацию вообще всем похрен в случае монополии. Владельцы и работники не нужных трекеров просто сядут. А владельцы нужных будут делать то, что им надо, и не сядут, ибо трекер кому надо принадлежит, а вы никуда не денетесь с подводной лодки и продолжите хавать двойную малварь, и от производителя ПО, и от релизеров.
Примеры давай двойной малвари на подконтрольных, а не теории заговора. Я почему то не склонен доверять шизе местных, которые ME из биоса выпиливают. Если вы поехавшие параноики - ваши проблемы. А почему должны ваши фантазии волновать, покуда мои кредитки целы, я доволен, я ведь не скрываюсь от мирового правительства рептилоидов, чтобы себя накручивать.
А вот это — коммунизм! Либо на халяву, либо сп…ть.
Профессионально приплетаю коммунизм. Дорого.
Сделай паузу с приплетаниями, поделись со всеми.
> Всё правильно сказано. Опенсорс проекты - это не халява и не бесплатный
> труд, а решение исключительно своих проблем. Хотите чтобы кто-то решал чужие?
> Заплатите ему за это. Или face your problems yourself. Опенсорс -
> не коммунизм.А какжи так?! А какжи "скачивая линукс вы скачиваете коммунизм?!" xD
В целом существует continuous delivery. Я так и публикую свои библиотеки на npm. Как только изменения попадают в мастер. Только использовал GitHub Actions, которое не рекомендую, они постоянно что-то меняют и оно ломается периодически. Лучше как-то обеспечить локальный сценарий сборки — надёжнее будет.
>> GNU Mes is a Scheme interpreter and C compiler for bootstrapping the GNU System.
>> The final goal is to help create a full source bootstrap as part of the bootstrappable builds effort for any UNIX-like operating system.
> Что сделает обыватель, когда эта поделка не заведется изкоробки? Он свалит к проприетарщикам, у которых релизы вылизаны до идеала.Не томи, давай уже свою ссылку на хотя бы одного проприетарщика с "вылизаным до идеала" релизом альтернативного софта. Али как обычно, опеннетный балабол?
Все для Вас
https://visualstudio.microsoft.com/ru/
Ну так ешьте корпоративное вас же ни кто не принуждает.
Правда если заглянуть внутрь то там тот же опенсорс только уже с закладками нужными
>> GNU Mes is a Scheme interpreter and C compiler for bootstrapping the GNU System.
>> .. full source bootstrap as part of the bootstrappable builds effort for any UNIX-like operating system.
> Все для Вас
> https://visualstudio.microsoft.com/ru/Все для Вас
https://learn-english-online.org/Lesson1/Lesson1.htm
Это тот вылизанный до идеала компилятор, который фиксит баги, а потом в следующем же крупном релизе их снова возвращает? Вот уж точно, отточеный до идеала.
Недавно как раз вспоминал, какие есть коммерчески успешные игры, собранные свободным компилятором. И вспомнил ровно одну — Quke 1. Но Кармак в своё время тем ещё экспериментатором был. Впрочем, эксперимент не задался.
В playstation SDK от сони входит gcc - подозреваю, что большинство игр на плойке собрано им.
Сколько из них были комерчески успешными не скажу.
>>Обыватель не будет качать найтли или, не дай бог, собирать их из сурцов. Он скачает офф стабильный релиз....а кто такой обыватель и зачем ему это нужно
Обыватель каждый день на кухне бутстраппит NixOS. Каждая кухарка должна уметь не только управлять государством, но и обеспечить суверенитет государства операционными системами.
Не на то смотрите. Дело не в том, что между релизами два года, дело в том, что недостаточно тестируют. А то повадились: быстро-быстро пихнули в релиз то, что, по сути, является в лучшем случае бета-версией, а уж в продакшне дотестируют. В итоге всё равно после релиза ждёшь ещё 2-3 патча, чтобы "стабильная" версия стала действительно стабильноый.
Это если более менее успешный/популярный проект, а не подделка одного васяна. Такие могут и по 2 года делать промежутки между версиями, а минорных не делать вовсе.
Это божественно!
Не хайпово, не взлетит. Надо написать компилятор go на rust, и компилятор rust на go. На компилятор Си - забить.
Теперь точно сделают свой дистрибутив с нескучными обоями.
Guix ?
С консолью на последовательном порту.
Все конечно хорошо, но лучшебы эти силы пустили на батстрап Rust компилятора. Я RMS доверяю, мне rust нужен, подонки его везде напихали.
да как напихали так и выпилят делов то
Уже давно есть. Правда цепочка довольно длинная получилась, надо бы оптимизировать.
https://guix.gnu.org/ru/blog/2018/bootstrapping-rust/
Когда-то был TCCBOOT, который в процессе загрузки собирал урезанное ядро Linux.
> В GNU Mes предлагается самодостаточный (self-hosting) интерпретатор для языка Scheme, написанный на языке СиЭто рушит концепцию развет нет? Все равно для сборки нужен Си компилятор.
Там цепочка начинается с ассемблера, а не с Си
А должна начинаться с простейшего процессора на минимуме простейших кустарно изготавливаемых дискретных элементов, простейшего считывателя перфоленты, простейшего термопринтера, печатающего места для отверстий на перфоленте, простейшей программы для этого устройства в виде транскрипта перфоленты. Всё должно быть выжжено в кубе из кварца по технологии Project Silica и заточено на Шпицбергене.
Так оно так и начиналось ;)
Просто Вы немного опоздали :(
> Оба компонента взаимособираемы.тут есть один нюанс: сборка происходит уже собранным компилятором, а выполнение -- уже собранным интерпретатором.
поэтому пока они оба находятся в исходниках, собирать/выполнять придётся чем-то уже собранным заранее.
а оно является потенциальным источником закладок -- по исходному условию.поэтому надо прочитать код интерпретатора и компилятора, собрать интерпретатор, дизассемблировать, полностью прочитать листинг и убедиться, что никакого вредного кода добавлено не было, затем прочитать код компилятора и собрать его силами интерпретатора.
причём всё это надо делать вручную, потому как доверять сторонним средствам и нейронным сетям нельзя -- они могут быть скомпрометированы.
но это всё-равно легче, чем прочитать весь код gcc или llvm/clang.
Для x86 GNU Mes собирается вот из этого: https://github.com/oriansj/bootstrap-seeds/blob/master/POSIX...
Здесь бинарник по сути являтся зеркальным отражением своего исходного кода. Подкинуть туда закладки будет мягко говоря тяжеловато.
Забавно, что в README указанного проекта написано> NEVER TRUST ANYTHING IN HERE
Это правильно. Ты должен проверить исходники, перед тем как использовать. Иначе процесс бутстрапизации теряет смысл
А вот дурацкий вопрос:Есть у нас, например, MS Windows с дефолтным набором софта.
Можно на ней раскрутить Юникс-систему через этот bootstrap?(mingw, cygwin по условиям задачи исключаются)
Кстати, не вопрос ни разу.
Ставим virtualbox/simh, под ним запускаем систему с компилятором C, профит!
Когда добавят бутстрэппинг для С#?
Когда Андреас Хелсберг на горе свистнет
Ещё забыли пункт про сборку Knight процессора на ПЛИС для hex0 (который уже stage0).Непонятно, как транспилер M2 Planet создаст исполняемый файл, если транспилер это source-to-source compiler?
Целевой source как машкод?
Заголовок как набор байт?
Осталось Nix переписать, а то они используют обёртку вокруг него на Guile.
"В GNU Mes предлагается самодостаточный (self-hosting) интерпретатор для языка Scheme, написанный на языке Си, и простейший компилятор для языка Си (MesCC), написанный на языке Scheme. Оба компонента взаимособираемы. Scheme-интерпретатор даёт возможность собрать Си-компилятор MesCC, который затем позволяет собрать урезанную версию компилятора TinyCC (tcc), возможностей которого уже достаточно для сборки GCC."А если уже собранные бинарники собраны так, чтобы в исходники добавлять скрытые закладки на этапе компиляции типа проверенных исходников, как они решили эту "проблему"?!
> А если уже собранные бинарники собраны так, чтобы в исходники добавлять скрытые закладки на этапе компиляции типа проверенных исходников, как они решили эту "проблему"?!Сравнить результат бутстрапа на нескольких ОС c разными компиляторами C.
например, на VAX/VMS DEC C собираем интерпретатор scheme, им интерпретируем MesCC, которым собираем для x86 бинарник из проверочного исходника на C;
повторяем то же на linux gcc и т.д.
Если правильно понимаю, MesCC из одного и того же исходника C должен сгенерить идентичный бинарник независимо от того, как собирался scheme, которым интерпретируется MesCC.
По моему скромному мнению, более надёжным решением было бы написание минималистичного компилятора C на ассембрере целевой архитектуры. Минималистичного насколько это возможно. Да, потребуется отдельно для x86_64, отдедьно для RISC-V64. Затем, _ручная_ трансляция этого C-компилятора в машинные коды с помещением выходного кода в минималистичный ELF-файл. Далее, сборка этим компилятором интерпретатора Scheme.
> ... более надёжным решением было бы написание минималистичного компилятора C на ассембрере целевой архитектуры. Минималистичного насколько это возможно.Ему еще рантайм так или иначе потребуется.
И всю эту радость грузить прямо в RAM тумблерами с пульта. Щолк-щолк.
Эта новость как раз про решение этой проблемы. Тем чем читал? Я даже выше пояснил: первый компилятор ассемблера stage0 ты собираешь на ПЛИС/FPGA/вентильной матрице.
очень крутая, интересная, технологичная - и, скорее всего, бесполезная норкомания.It's not for using - it's just for looking through (c).
Оно наберёт вес только после появления в массах компов с открытыми прошивками (Canoeboot https://www.opennet.dev/opennews/art.shtml?num=60011 прошивки видяхи, сетевухи, диска, ...)
А до этого АНБ легче засунуть трояна в бинарный блоб прошивки (https://en.m.wikipedia.org/wiki/Stuxnet), чем в компилятор C при бутстрапе с stage1.
> Проект также развивает Си-библиотеку Mes C, которой достаточно для сборки glibc 2.2.5, binutils 2.20.1 и gcc 2.95.3, необходимых для развёртывания дистрибутива Guix для платформ i686-linux, x86_64-linux, armhf-linux и aarch64-linux, используя только исходные тексты (Full Source Bootstrap).
> В следующих выпусках ожидается появление поддержки бутстрэппинга NixOS только из исходных текстов.Заказываю сборку stage1 от Gentoo и минимал CD: https://distfiles.gentoo.org/releases/amd64/autobuilds/curre.../