The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск ForgeZero 3.0, инструмента сборки для C и ассемблера

19.05.2026 06:38 (MSK)

Опубликован релиз ForgeZero 1.9.0 (fz), консольного инструмента сборки для проектов на языках C, C++ и ассемблере (NASM, GAS, FASM). Инструмент не требует создания Makefile или иных конфигурационных файлов для базового использования. Код проекта написан на языке Go и распространяется под лицензией MIT.

ForgeZero определяет тип файла и автоматически выбирает необходимый бэкенд. Каждый файл с кодом собирается в объектный файл, после чего выполняется проверка дублирующихся глобальных символов во всех объектах и осуществляется компоновка в единых исполняемый файл. Скомпилированные файлы кэшируются и повторно пересобираются только после внесения изменений в связанные с ними файлы с кодом. Возможно опциональное отслеживание изменений в ФС и пересборка после обновления файлов с кодом.

Поддерживаются компиляторы GCC, Clang, G++, Clang++; ассемблеры NASM, GAS, FASM; компоновщики LD, GCC, Clang; архиватор AR. Обязательные предупреждения для C и C++: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". По умолчанию включены санитайзеры AddressSanitizer и UndefinedBehaviorSanitizer (отключаются флагом -sanitize=false). Поддерживаются платформы Linux, macOS, Windows (WSL2 и экспериментально нативно).

Основные изменения в версии 1.9.0:

  • Добавлен флаг "-target" <triple>, позволяющий выполнять кросс-компиляцию для произвольной архитектуры при наличии соответствующего префиксного инструментария. fz самостоятельно определяет имена компилятора, компоновщика и архиватора по указанному идентификатору (например, "arm-linux-gnueabihf-gcc"). Поддерживаются любые стандартные целевые платформы GNU, в том числе arm-linux-gnueabihf, aarch64-linux-gnu и riscv64-linux-gnu.
  • Реализована поддержка поддержка протокола LSP (Language Server Protocol). Флаг "-compile-commands" генерирует файл compile_commands.json (Compilation Database) в корне проекта. Файл считывается языковыми серверами clangd и ccls, обеспечивая работу автодополнения, навигации по коду и диагностики в редакторах с поддержкой LSP (Neovim, VSCode, CLion, Emacs и др.).
  • Команда fz "-update" перед установкой новой версии теперь сохраняет текущий бинарный файл в /usr/local/bin/fz.old, что позволяет откатиться к предыдущей версии без переустановки.
  • Устранена ошибка, при которой в мультидиректорных проектах файлы с одинаковыми базовыми именами из разных подкаталогов перезаписывали объектные файлы друг друга. Имена объектных файлов теперь формируются на основе полного относительного пути к исходному файлу.
  • Реализован интерактивный режим "fz -shell" для сборки одиночных файлов.
  • Добавлено тестовое покрытие для команд SplitCommand, CmdSet и CmdBuild. Покрытие тестами пакета компоновщика увеличено с 17% до 60%, а покрытие всех пакетов превысило 40%.
  • Добавлен механизм подмены CheckTool для тестирования сценариев с отсутствующими компонентами тулчейна.

Изменения предыдущих выпусков:

  • В версии 1.8.0 реализована сборка статических библиотек (-type static / -lib), обеспечена уникальность имён объектных файлов в мультидиректорных проектах, исправлены ошибки в подсистеме сборки, связанные с обходом пути "..".
  • В версии 1.7.0 добавлена параллельная компиляция (-j N, 0 — автоопределение числа ядер), поддержка линкер-скриптов (-T) и адреса точки входа (-Ttext), интерактивный режим (fz -shell), явный выбор формата вывода (elf32, elf64, bin), компиляция файлов C++ (.cpp, .cc, .cxx) с теми же строгими флагами предупреждений, что и для C.
  • В версии 1.6.0 добавлены инициализация проекта (fz -init, создаёт .fz.yaml, .fzignore, README.md), поддержка формата bin (-format bin) для загрузчиков и прошивок, конфигурационные поля libs, flags.cc, flags.asm, flags.ld.
  • В версии 1.5.0 реализованы множественные директории источников (source_dirs), явные списки файлов (source_files), шаблоны include/exclude, поле libs для библиотек компоновщика, файл .fzignore, многоуровневое слияние конфигурационных файлов.



Дополнение 1 от 20 мая: По результатам обсуждения сформирован выпуск ForgeZero 2.0, в котором добавлен пакетный менеджер, значительно ускорен кэш и расширены возможности кросс-компиляции:

  • Хеширование переведено с SHA256 на BLAKE3 - скорость кэша выросла в 7 раз. Файл 10 МБ: 58 мс → 8.7 мс. Верификация пакетов из каталога также использует BLAKE3.
  • Добавлен пакетный менеджер fz pm. Управление зависимостями для C/ASM проектов:
    
        fz pm add <репозиторий>
        fz pm remove <пакет>
        fz pm update
        fz pm list
        fz pm search <запрос>
        fz pm install
        fz pm catalog
    

    Зависимости описываются в .fz.yaml. Удаление очищает пустые родительские директории. Поддерживается community-driven JSON-каталог пакетов.

  • Появилась поддержка динамических библиотек: флаги -shared, -cc-flag, -ld-flag. Кросс-компиляция через -target <triple> - ARM, RISC-V, x86_64, i386, инструментарий подбирается автоматически. Статические библиотеки: -type static / -lib, сборка .a-архивов через ar. Флаг -compile-commands генерирует compile_commands.json для clangd и совместимых LSP-клиентов.
  • Параллельная сборка "-j N".
  • Поддержка линкер-скриптов и адреса секции (-T, -Ttext).
  • Устранены коллизии имён объектных файлов.
  • Исправлены все предупреждения golangci-lint (errcheck, govet, ineffassign), таймауты и контекст для сетевых и git-операций. Покрытие тестами: utils 84%, linker 60%, assembler 60%, builder 56%.

Дополнение 2 от 21 мая: Выпущена версия ForgeZeron 3 инструмента ForgeZero.Технические изменения:

  • Внедрена поддержка Zig в качестве бэкенда для кросс-компиляции C/C++ кода. Позволяет выполнять сборку без использования внешних системных тулчейнов.
  • Встроена функциональность сканирования секретов (секретные ключи, токены), проверки комплаенса лицензий и анализа паттернов безопасности.
  • Реализована поддержка спецификации CycloneDX. Целостность данных подтверждается криптографическим хэшированием BLAKE3.
  • Обеспечена воспроизводимость процесса сборки. Результат компиляции идентичен бит-в-бит на различных конфигурациях оборудования.
  • Добавлена поддержка FASM (ELF64) и WASM (wasm32-wasi).
  • Добавлены иагностические утилиты: "fz verify" (аудит целостности бинарных файлов) и fz bench (профилирование производительности с наносекундной точностью).
  • Поддержка платформы Windows (без использования WSL).


  1. Главная ссылка к новости (https://github.com/forgezero-c...)
  2. OpenNews: Обновление операционной системы MenuetOS 1.57.70, написанной на ассемблере
  3. OpenNews: Обновление ОС KolibriN 10.1 и MenuetOS 1.34, написанных на ассемблере
  4. OpenNews: Ассемблер занял десятое место в рейтинге популярности языков программирования
  5. OpenNews: asmttpd - http-сервер на ассемблере
Автор новости: alexvoste
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65474-forgezero
Ключевые слова: forgezero, asm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (95) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 07:13, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Это замена утилите make?
     
     
  • 2.4, Олег (??), 09:04, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Похоже на то.
     
     
  • 3.37, Аноним (37), 11:47, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Они пытаются переизобрести Паскаль.
     
  • 2.12, Жироватт (ok), 09:40, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +14 +/
    ...и тут авторы ForgeZero нашли в связке make и любой программы, формирующей makefile ФАТАЛЬНЫЙ НЕДОСТАТОК - его писали не они! Для решения этой проблемы они создали ForgeZero (похожее на все сборочные системы, но другое), полностью исключающее Library (objectfile) Hell!...
     
     
  • 3.14, Аноним (14), 10:16, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –9 +/
    О господи, всем наcpaть! (с)
    Ну написали и написали, чего такая тряска?

    make это просто древний копролит рассчитанный на престарелых луdduтов.

    А у нас вообще то СПО и делать кучу вариантов одного и того же - наоборот приветствуется.

     
     
  • 4.31, Аноним (31), 10:59, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >  и делать кучу вариантов одного и того же - наоборот приветствуется

    :))) Ну вот примерно поэтому "линукс-десктоп" - это такая эфемерная система, которая вроде бы есть, но в таком виде нафиг никому не нужна. Время "пусть распускаются тысячи цветов" в ИТ прошло примерно 20 лет назад - выжили те, кто реально хорошо делал свою задачу. Т.е. наступило время "собирать десятки плодов от тысяч цветов".

    ФОСС - он как бы приятная штука, ИГРУШКА для нубов, но для дела, для бизнеса такой подход "захотел - запилил ещё один редактор" - категорически не годится.

     
     
  • 5.72, Аноним (72), 16:45, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Поэтому бизнес пользуется линуксом и пилит свои решения под него повсеместно, в том числе и опенсорс. Обожаю, когда школьники рассказывают как оно там -- в серьёзном бизнесе.
     
  • 5.83, Аноним (83), 17:44, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, поэтому нам нужен один дистрибутив, один DE, один Столлман
     
  • 5.130, Аноним (130), 18:36, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > ФОСС - он как бы приятная штука, ИГРУШКА для нубов, но для дела, для
    > бизнеса такой подход "захотел - запилил ещё один редактор" - категорически не годится.

    А, то-есть все эти AI ворочающие триллионами, мордокниги, гуглы, ТОП500, LSE/NYSE, RHBM... - недостаточно сериоус бизнесс? Да даже у майкрософта в изначально маздайнодотнетном абажуре давно правит бал - пингвин.

    А так то FOSS игрушка, да. Правда девелоперс-девелопарс все что-то вдарились в эти наши игры, да еще настолько что тот же майкрософт с горя пытался всякими WSL хоть как-то драп-драп остановить. Ибо если что не пригодно для девелопа - так это масдайка.

     
  • 5.131, Аноним (130), 18:38, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > ФОСС - он как бы приятная штука, ИГРУШКА для нубов, но для дела, для
    > бизнеса такой подход "захотел - запилил ещё один редактор" - категорически не годится.

    А, то-есть все эти AI ворочающие триллионами, мордокниги, гуглы, ТОП500, LSE/NYSE, RHBM... - недостаточно серьезные? Да даже абажур - пингвин сплошной.

    А так то FOSS игрушка, да. Правда девелоперс что-то на него все драп-драп.

     
  • 4.129, adolfus (ok), 16:31, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > make это просто древний копролит рассчитанный на престарелых луdduтов.

    А чем make плох? Работу свою делает, синтаксис простой (на порядок и более проще, чем у cmake, который генерит тот же Makefile для make).

     
  • 2.13, Аноним (13), 10:06, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Инструмент не требует создания Makefile или иных конфигурационных файлов для базового использования.

    Открою секрет - для базового использования ни один инструмент не требует перечисленных вещей.

     
  • 2.23, xor2003 (?), 10:40, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Этот проект должен уметь генерить Makefile или cmake или ninja,
    Тогда будет круто
     
     
  • 3.150, Марин (?), 04:26, 22/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И для CMake? Это что получается, мета-мета-система сборки?
     
  • 3.151, Марин (?), 04:27, 22/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    И для CMake? Это получается мета-мета-система сборки?
     

  • 1.3, Tron is Whistling (?), 08:22, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    "в мультидиректорных проектах файлы с одинаковыми базовыми именами из разных подкаталогов перезаписывали объектные файлы друг друга"
    Дальше не читал, понятно, что уже не нужно, потому что изначально ногами делано.
     
  • 1.6, Олег (??), 09:06, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Автор, санитайзеры по умолчанию лучше отключать - они существенно замедляют бинарник. Поэтому подобное умолчание может доставить неудобств.

    Я правильно понял, что подтягивания зависимостей нет?

     
     
  • 2.74, Аноним (74), 17:05, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Я правильно понял, что подтягивания зависимостей нет?

    Лучше, чтобы подтягивала молча с левых репо исходники или, не дай бог, .so?

     

  • 1.7, enep (ok), 09:07, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странно а чем не устроил тот же make синтаксис довольно простой
     
     
  • 2.8, Ананоним (?), 09:11, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тем, что его нуджно написать, а это лень, неможно и немолодёжно. Когда есть инструмент "и так сойдёт", соблазн очень велик.
     
     
  • 3.43, Аноним (37), 11:58, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда пусть возьмут Паскаль - его модульная система позволяет обходиться безо всяких Makefile.
     
  • 3.49, Аноним (49), 12:54, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Тем, что его нуджно написать, а это лень, неможно и немолодёжно.

    а, что деды не могли сделать интерактивную утилиту, которая задавая вопросы про включения тех или иных опций, выбора тех или иных файлов для компиляции и т.д. сохраняло бы выбранные параметры один раз и все, а дальше тупо запускай команду билд. Что таже самая ./configure не могла быть интерактивной? нет бл*ть надо --help прописать, час потратить на разбор выхлопа, потом руками прописать пяти строчный набор параметров командной строки сохранить его в текстовый файлик от греха подальше на будущее, ппц, а потом придумали якобы мейк для решения этой проблемы, а щас решают проблему мейка, а завтра будут решать проблему этого forgezero (даблфейспалм)

     
     
  • 4.50, Ананоним (?), 13:20, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Люди очень часто решают несуществующие проблемы ради мифического удобства А ещё... большой текст свёрнут, показать
     
     
  • 5.56, Аноним (49), 14:18, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А вот твой "интерактив" каждый раз это точно ненужная хрень.

    кто сказал каждый раз? Читайте внимательно!

    > Но ты ещё этого не понял. Возможно ты жертва GUI и мышки.

    Гуй и интерактивность это разные понятие если ты еще не понял! Ставить галочки у опций конечно же легче чем писать -Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion, вы считаете обратно? Если да, то вы страдаете хн*й, банальная симуляция деятельности. И опциональность, гибкость ой не знаю что, все это должно быть в необходимом и достаточном количестве, то есть оптимальном, избыток всегда создает мракобесие.

     
     
  • 6.82, Ананоним (?), 17:25, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> А вот твой "интерактив" каждый раз это точно ненужная хрень.
    > кто сказал каждый раз? Читайте внимательно!
    >> Но ты ещё этого не понял. Возможно ты жертва GUI и мышки.
    > Гуй и интерактивность это разные понятие если ты еще не понял! Ставить
    > галочки у опций конечно же легче чем писать -Wall -Wextra -Werror
    > -Wpedantic -Wshadow -Wconversion, вы считаете обратно? Если да, то вы страдаете
    > хн*й, банальная симуляция деятельности. И опциональность, гибкость ой не знаю что,
    > все это должно быть в необходимом и достаточном количестве, то есть
    > оптимальном, избыток всегда создает мракобесие.

    Учись писать портянки с рассказами какую кнопку нажать в GUI, тебе скрипты не по силам.

     
     
  • 7.124, Аноним (49), 13:53, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Учись писать портянки с рассказами какую кнопку нажать в GUI

    ты нажал на ссылку "Ответить" или собственноручно скрафтил HTTP POST запрос?

     
     
  • 8.134, Аноним (-), 18:54, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    HTTP POST отлично крайтится скриптами, особенно если curl какой поюзать Так что... текст свёрнут, показать
     
     
  • 9.140, Аноним (49), 03:25, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Повторяю ты нажал на ссылку Ответить или собственноручно крайтится скриптами ... текст свёрнут, показать
     
     
  • 10.152, Аноним (-), 07:08, 22/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    На ссылку, разумеется, нажал Но в основном только потому что ответы на опеннет ... текст свёрнут, показать
     
  • 8.138, Ананоним (?), 00:06, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я удивляюсь почему ты не спросил мнея играю ли я в видеоигры через скриптование ... текст свёрнут, показать
     
     
  • 9.139, Аноним (49), 03:24, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    это походу ты не различаешь что такое ГУЙ и интерактив, выше я уже об этом писал... текст свёрнут, показать
     
     
  • 10.144, Ананоним (?), 10:15, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот ты тугодум, по твоим сообщениям понятно что для данного случая GUI и интерак... текст свёрнут, показать
     
     
  • 11.145, Аноним (49), 13:24, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Повторяю еще раз - это разные понятия Характерная черта ЫЫ-шного б0та, давай пр... текст свёрнут, показать
     
  • 6.148, Sm0ke85 (ok), 15:58, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Ставить галочки у опций конечно же легче чем писать -Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion, вы считаете обратно? Если да, то вы страдаете хн*й,

    Ты вообще не шаришь в теме, умеючи это все можно прописать быстрее, чем ты накликать можешь, а потом одной кнопкой повторять, и, если припрет, то подредактировать, а также это можно куда угодно передавать и с разными апи "знакомить"... Короче, это для людей-специалистов инструмент, а не для "мимо проходило"...

     
     
  • 7.149, Аноним (49), 02:12, 22/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Короче, это для людей-специалистов инструмент, а не для "мимо проходило"...

    ясно, понятно, специалист по симуляции деятельности

     
  • 4.147, Sm0ke85 (ok), 15:54, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >а, что деды не могли сделать интерактивную утилиту, которая задавая вопросы про включения тех или иных опций, выбора тех или иных файлов для компиляции и т.д. сохраняло бы выбранные параметры один раз и все, а дальше тупо запускай команду билд. Что таже самая ./configure не могла быть интерактивной? нет бл*ть надо --help прописать, час потратить на разбор выхлопа, потом руками прописать пяти строчный набор параметров командной строки сохранить его в текстовый файлик от греха подальше на будущее, ппц, а потом придумали якобы мейк для решения этой проблемы, а щас решают проблему мейка, а завтра будут решать проблему этого forgezero (даблфейспалм)

    Пффф, все там нормально и удобно, это ж инструмент для людей, а не для недорослей...

     
  • 2.15, Аноним (14), 10:19, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Не знаю как в этой поделке, но у Make есть куча проблем и костылей.
    Начиная от рекурсивного make заканчивая просто угребищным Dependency Management по таймстемпу.

    Не зря многие проекты переехали на более современные тулы.

     
     
  • 3.19, edo (ok), 10:28, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Не зря многие проекты переехали на более современные тулы.

    а «более современные тулы» часто в итоге генерируют Makefile

     
     
  • 4.29, Аноним (31), 10:54, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Чушь. Зачем им собственноручно урезать собственные возможности??
     
     
  • 5.33, Сладкая булочка (?), 11:38, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит урезать собственные возможности? Это метасистемы сборки, они не занимаются сборкой, а генерируют правила для систем сборки.
     
     
  • 6.53, edo (ok), 13:46, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    вы про meson или cmake?
     
     
  • 7.57, Сладкая булочка (?), 14:19, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > вы про meson или cmake?

    Не имеет значения: истино для любой.

     
  • 3.32, Сладкая булочка (?), 11:36, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > просто угребищным Dependency Management по таймстемпу.
    > Не зря многие проекты переехали на более современные тулы.

    На ninja, у которой тоже зависимости по timestamp?)

     
     
  • 4.36, Аноним (36), 11:47, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > На ninja, у которой тоже зависимости по timestamp?)

    Или на Meson)
    Подходы разные, некоторые удачные, некоторые не очень.

    Но проблемы make оно ж не отменяет)


     
     
  • 5.42, Сладкая булочка (?), 11:56, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> На ninja, у которой тоже зависимости по timestamp?)
    > Или на Meson)

    meson - мета-система. Они генерит make. Поэтому make разумно сравнивать с ninja.

    > Но проблемы make оно ж не отменяет)

    https://cdn.idaprikol.ru/images/668df9e987c85648d5f70a9adb20a1c418c4f3e30eabc4

     
     
  • 6.118, llolik (ok), 10:51, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Meson не генерит make. Он работает с ninja по-умолчанию.
    Meson - это замена autotools, но никак не make (с которым он и не работает, к слову).
     
     
  • 7.119, Сладкая булочка (?), 11:43, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Meson не генерит make. Он работает с ninja по-умолчанию.

    Действительно make не поддерживают. Упал он в моих глазах.


     
     
  • 8.120, llolik (ok), 11:54, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем тратить силы на поддержку make, если ninja умеет всё тоже самое только ... текст свёрнут, показать
     
     
  • 9.125, Сладкая булочка (?), 14:25, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы не тащить К тому же ninja требует с , хотя есть samurai, но у них не пол... текст свёрнут, показать
     
     
  • 10.126, llolik (ok), 14:50, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Самодостаточный бинарник тот, что лежит в релизах на GH весом в 291Кб - не дум... текст свёрнут, показать
     
     
  • 11.135, Аноним (-), 18:55, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А телеметрия от гугли там как, встроена ... текст свёрнут, показать
     
     
  • 12.143, llolik (ok), 10:06, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Код открыт, и его, в отличие от chromium, даже немного Бери, изучай, ищи телеме... текст свёрнут, показать
     
  • 2.142, Tron is Whistling (?), 09:57, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, ребёнок узнал про гошечку...
     

     ....большая нить свёрнута, показать (34)

  • 1.10, q (ok), 09:35, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Сабж явно предназначен для новых проектов. В то же время общая рекомендация такова, что новые проекты надо начинать на расте, а не си/плюсах. Так что сабж опоздал лет на 20.
     
     
  • 2.48, Аноним (48), 12:41, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Только Д лет 20 окончательно издох. 2 версия компилятора это какая-то шутка с рантаймом. Да и в целом, ощущение, что раст конкретно Д вполне заменят.
     
     
  • 3.52, Аноним (52), 13:26, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Может, какой-нибудь Rust_with_classes и с шаблонами, и заменит.
     
     
  • 4.63, Онанимус (?), 15:19, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    …а вот Ватсон без классов уже не мог…
     

  • 1.20, Аноним (13), 10:29, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Поддерживаются платформы Linux, ..., Windows

    У меня это кросс-компилятор делает. Пишу под Linux, а сборки для Windows уже даже не тестирую.

     
  • 1.34, Сладкая булочка (?), 11:40, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Странный проект.

    Тащить go в тулинг для сборки c или с++ - оверкил для обычных проектов. Если вы крупная контора, делающся свою систему сборки - еще может быть. Но для обычных проектов есть устоявщиеся мета-системы сборки, есть conan. Им нет смысла переходить на новый инструмент.

     
     
  • 2.92, Аноним (92), 18:57, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не может Я не вижу никаких слов о кросссборке, а это значит что форжзиро беспол... большой текст свёрнут, показать
     
  • 2.121, Аноним (121), 12:14, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Тащить go в тулинг для сборки c или с++ - оверкил для обычных проектов.

    Так для необычных жеж. Тут телеметрия прямо в язык встроена, считай, что в систему сборки.

     

  • 1.40, Соль земли2 (?), 11:53, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не используй Make - это полное месиво.
    Используй Make - его хватит для большинства задач.
    Не используй CMake - это полное месиво.
    Используй CMake - его хватает в большинстве случаев.
     
     
  • 2.61, Аноним (48), 14:51, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не помню, чтобы кто-то призывал использовать cmake. Он немного лучше automake, но в целом месон удобнее. При этом automake самый гибкий и универсальный, на 2 головы превосходит cmake и meson вместе взятых. Но неудобен. Использовать просто make? Ну, если весь твой проект -- пара файлов на си без совместимости с зависимостями, make хватит.
     
     
  • 3.65, Аноним (65), 15:34, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    meson требует полноценно развёрнутого питона в системе, CMake же автономен.
     
     
  • 4.70, Аноним (48), 16:05, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > meson требует полноценно развёрнутого питона в системе, CMake же автономен.

    cmake больше загаживает

    * dev-lang/python-3.14.5
             Total files : 2862
             Total size  : 57.46 MiB
    * dev-build/meson-1.11.1
             Total files : 1051
             Total size  : 22.96 MiB
    * dev-build/cmake-4.3.2
             Total files : 4140
             Total size  : 60.28 MiB

     
  • 4.79, Сладкая булочка (?), 17:16, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > meson требует полноценно развёрнутого питона в системе

    Есть muon на си.

     
  • 4.95, Аноним (-), 19:45, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > meson требует полноценно развёрнутого питона в системе, CMake же автономен.

    Вообще есть такая штука как Muon. Реализует тот же DSL - но на си :). Так что можно и без питона. Но в целом meson достаточно дурацкая штука имхо.

     
  • 3.81, Аноним (81), 17:22, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не помню, чтобы кто-то призывал использовать cmake

    CMake - стандарт де факто, его и так все используют, зачем призывать это делать? А нетакусиков и неосиляторов наставлять на путь истинный - неблагодарное дело, они всё равно полезный для сообщества проект родить не способны.

    > При этом automake самый гибкий и универсальный

    Это потому что он портянка на баше, и эти качества - именно те которых не должно быть у сборочной системы.

     
     
  • 4.132, Аноним (130), 18:40, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> При этом automake самый гибкий и универсальный
    > Это потому что он портянка на баше, и эти качества - именно
    > те которых не должно быть у сборочной системы.

    С точки зрения майнтайнера - удобно. Пошлет тебя в пень если в системе только шелл есть. И расскажет что доустановить. А нахрен еще конфигурационная система упала?!

     

  • 1.58, Аноним (58), 14:25, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В чем проблема вызывать gcc с нужными флагами и аргументами? Никогда не понимал зачем мне эти системы сборки проектов.
     
     
  • 2.60, Аноним (48), 14:46, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема собрать с различными параметрами и зависимостями (различных версий) под разные платформы. Ну и как видим пго и юнити билды непосильная задача для любителей makefile.
     
  • 2.62, maximnik0 (?), 15:18, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Никогда не понимал зачем мне эти системы сборки проектов.

    Я как знакомый с виндой помогал народу по мере сил разобраться с исходниками Jagged Alliance 2 ,без игровых ресурсов.Народ проклял разбираться с зависимостьями - make файлы были удалены (не знаю зачем).Уже не помню сделали интузиасты порт движка или нет.Сейчас есть официальный порт под linux от компании Tribsoft.

     
  • 2.64, Аноним (37), 15:26, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В чем проблема вызывать gcc с нужными флагами и аргументами?

    Проблема в "с нужными флагами и аргументами". Где это хранить?

     
     
  • 3.66, Аноним (66), 15:37, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> В чем проблема вызывать gcc с нужными флагами и аргументами?
    > Проблема в "с нужными флагами и аргументами". Где это хранить?

    В текстовом файлике)

    Как-то довелось работать с подобным интеллектуальным дедом.
    У него был файл, в который он копировал строки команд для консоли.
    И если надо было собрать проект, то он искал какая нужна.


     
     
  • 4.77, Сладкая булочка (?), 17:13, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> В чем проблема вызывать gcc с нужными флагами и аргументами?
    >> Проблема в "с нужными флагами и аргументами". Где это хранить?
    > В текстовом файлике)
    > Как-то довелось работать с подобным интеллектуальным дедом.
    > У него был файл, в который он копировал строки команд для консоли.
    > И если надо было собрать проект, то он искал какая нужна.

    Так много кто делает, особенно если команды не простые. Каждый раз писать баш портянку на пайпах лень, а в истории может не быть, если, например, зашел на новую машину.

     
  • 3.88, Аноним (49), 18:08, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    опции компилятора по существу должны хранятся в исходных файлах проекта. Где именно? да в том же main.c
     
  • 2.122, Аноним (121), 12:16, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если весь исходничек в одном единственном файлике, то никаких проблем. А если файликов много и они по папкам разложены?
     

  • 1.67, Аноним (65), 15:37, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > ForgeZero is a high-performance, zero-overhead build tool for assembly and C developers. It wraps NASM, GAS, FASM, GCC, Clang, and LD
    > …
    > Languages: Go 100.0%

    Ну да, ну да. Чтобы с комфортом покомпилять на ассемблере нужно сначала притащить компилятор Go с гуглозондами. Такое–то удобство, такая–то эффективность, Bellissimo!👌

     
     
  • 2.68, Аноним (-), 15:42, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Go был выбран, потому что бинарники, которые он генерирует, представляют собой самодостаточные контейнеры, не требующие внешних зависимостей.
     
     
  • 3.94, Аноним (94), 19:17, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зачем смешивать понятия "исполняемый файл" и "самодостаточный контейнер"?
     

  • 1.71, Сусанин (?), 16:44, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ребят, ну все, кто программирует на C, C++ и ассемблере просто обязаны знать make и уметь писать makefile! Это же азбука! Или это для поколения ЕГЭ сложно? Но как же тогда вы будете программировать на ассемблере? 8-)
     
     
  • 2.80, Аноним (81), 17:17, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > просто обязаны знать make и уметь писать makefile!

    Не makefile, но любую актуальную систему сборки. just, cmake, meson, можно и fz. Make к таким не относится.

    > Это же азбука!

    Да, но старославянская.

     
     
  • 3.127, Сусанин (?), 15:00, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    make нужно знать в любом случае, а уже потом любые другие системы сборки (если нужно).
     
  • 3.128, Сусанин (?), 15:02, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не makefile, но любую актуальную систему сборки.

    make нужно знать в любом случае, а уже потом любую другую систему сборки (если нужно).

     
  • 2.146, Аноним (146), 15:37, 21/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не будут они программировать на каком-то там ассемблере. На Electron они будут.
     

  • 1.73, Аноним (-), 16:47, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > для проектов на языках C, C++ и ассемблере

    ...
    > Код проекта написан на языке Go

    Это FAIL как по мне, чтоб скомпилить приблуду для асма и сей - го ставить? Ну да, логика! :)

     
     
  • 2.78, Аноним (81), 17:15, 19/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    И в чём проблема? Если ты ставишь бинарные пакеты, тебе вообще похрен на чём они написаны из компилируемых языков - хоть C, хоть rust, хоть хаскель. Если ты собираешь из исходников, go на порядок более лёгкий чем те же gcc/clang/rust/ghc, а в система у тебя и так завалена всевозможным говном начиная с перла.

    Потом, на чём она должна быть написана, по-твоему? Не на ассемблере же, C и плюсах?

     
     
  • 3.133, Аноним (-), 18:51, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Этой штяпы нет в моем дистро Так что надо компилять самому И в итоге черти ... большой текст свёрнут, показать
     

  • 1.89, Аноним (89), 18:21, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    у меня подозрения, что те, кто не любит системы сборки и makefile, уже пользуются языками программирования, в которых есть модули, и компиляторы которых могут от главного модуля сами найти и скомпилировать все зависимости простой командой. как уже вышеупомянутые паскаль и ди.
     
     
  • 2.116, Жироватт (ok), 09:28, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ограниченно могут.

    А вот что посложнее, вроде кросскомпиляции под набор систем с разными наборами библиотек и зависимостях в системных, но не стандартных библиотеках...
    Или сборки не одного бинарника в одной директории, а набора бинарников с разными т.н. flavours для разных подверсий, причём с разным функционалом...
    Или дополнительной обработки внешним инструментом готового или промежуточного результата сборки в каком-то сценарии...

    И это очень распространенные сценарии сборки. Вот тут и начинаются эпические трудности и эпические костыли, решающие то, что уже давно решили все эти дедовые системы сборки

     
  • 2.117, Жироватт (ok), 09:29, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так что так вот
     
  • 2.137, Аноним (37), 23:43, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    пишу на паскале, пользуюсь при этом make, т.к. где-то же надо задавать тонну параметров, да и "просто компиляция" - это для хеловордов только, в реальных проектах есть и другие задачи.
     

  • 1.91, Аноним (74), 18:56, 19/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Выглядит странно: Тащить поддержку другого языка на платформу, чтобы выполнить задачу, имеющую много других инструментом для выполнения.
     
     
  • 2.136, Аноним (-), 18:58, 20/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Выглядит странно: Тащить поддержку другого языка на платформу, чтобы выполнить задачу,
    > имеющую много других инструментом для выполнения.

    Надо было на жабе с питоном - как гугло. Тогда можно было ьы коментить про отношения жабы  и гадюки :)

     

  • 1.107, Аноним (107), 00:08, 20/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Посмотрел новость...
    Autotools - моё фсё.
     
  • 1.111, Аноним (111), 00:57, 20/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Предлагаю автору урезать readme.md. В противном случае целевая аудитория не поймёт, зачем это. Сейчас эта замена автотулзов поставляется со сравнимым с праймером по мейкфайлам мануалом.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру