← Все статьи
2026-05-20 08:03 · 🌐 СНГ (tech/AI)

ForgeZero 1.9.0: C/C++ без Makefile — LSP и кросс-компиляция из коробки

В середине мая 2026 года вышел ForgeZero 1.9.0 — открытый консольный инструмент для сборки C, C++ и ассемблерных проектов без единого Makefile. За несколько минорных версий проект прошёл путь от базового компилятора до полноценного тулчейна с параллельной сборкой, LSP-интеграцией и кросс-компиляцией для ARM и RISC-V.

ForgeZero 1.9.0: C/C++ без Makefile — LSP и кросс-компиляция из коробки

В середине мая 2026 года вышел ForgeZero 1.9.0 — мультиплатформенный консольный инструмент для сборки проектов на C, C++ и ассемблере (NASM, GAS, FASM). Написан на Go, распространяется под лицензией MIT. Главная идея: запустил fz в директории с исходниками — получил исполняемый файл. Никакого Makefile, никакого CMake, никаких конфигурационных ритуалов для базового сценария.

Контекст

Экосистема C/C++ десятилетиями страдает от фрагментации систем сборки. Autotools, CMake, Meson, Bazel, SCons — каждый инструмент решает сложность предыдущего, добавляя свою. Новый разработчик, впервые открывающий легаси-проект, нередко тратит половину дня только на то, чтобы проект вообще собрался. ForgeZero возвращается к нулевой точке: определи файлы автоматически, собери объекты, скомпонуй бинарь. Всё.

Проект стартовал как инициатива одного автора и за несколько версий (1.5 → 1.9) нарастил неожиданно взрослый набор возможностей. Поддерживаются компиляторы GCC, Clang, G++, Clang++; ассемблеры NASM, GAS, FASM; компоновщики LD, GCC, Clang. По умолчанию включены строгие флаги предупреждений (-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion) и санитайзеры AddressSanitizer + UndefinedBehaviorSanitizer. Это не учебный проект — это опиниатированный инструмент с production-дефолтами.

Контекст важен: C и C++ переживают неожиданный ренессанс именно сейчас. Инференс LLM на edge-устройствах, CUDA-ядра, кастомные операторы для нейросетевых фреймворков — всё это низкоуровневый C++. Одновременно растёт спрос на ассемблер в оптимизации критических секций AI-пайплайнов. Простой тулчейн без лишних ритуалов здесь реально экономит время.

Аналитика

Ключевое в 1.9.0 — не одна фича, а совокупность зрелости. LSP-интеграция через генерацию compile_commands.json означает корректную работу с clangd и ccls. Это автодополнение, навигация по коду, диагностика — прямо в Neovim, VSCode, CLion, Emacs. Без LSP любой нетривиальный C++ проект превращается в слепое программирование. Теперь это решается одним флагом -compile-commands.

Кросс-компиляция через флаг -target — второй принципиальный момент. ForgeZero самостоятельно определяет имена компилятора и компоновщика по идентификатору цели: arm-linux-gnueabihf, aarch64-linux-gnu, riscv64-linux-gnu. Для embedded и AI-на-edge (Raspberry Pi, ARM Cortex, RISC-V платы) это означает полный цикл cross-build без кастомных Makefile. Тренд на RISC-V в AI-акселераторах делает эту фичу актуальной прямо сейчас — особенно на фоне роста локального производства микроэлектроники в Азии.

Цифры по тестам говорят о реальном прогрессе: покрытие пакета компоновщика выросло с 17% до 60%, общее покрытие всех пакетов превысило 40%. Добавлен безопасный механизм обновления — fz -update сохраняет текущий бинарь как fz.old перед установкой новой версии. Для open source проекта одного автора — серьёзный сигнал зрелости и ответственного подхода к пользователям.

Кейсы применения в бизнесе

B2B-SaaS стартап с AI-компонентами. Типичный стек: Python-микросервисы с C-расширениями для производительности — computer vision, NLP, кастомные операторы. ForgeZero упрощает сборку расширений в CI/CD: вместо кастомного Makefile на каждый модуль — единая команда fz. Онбординг нового разработчика вместо трёхстраничной инструкции про сборочное окружение превращается в «поставь fz, запусти fz». Экономия — несколько часов на каждый новый найм.

Корпорация с legacy C-кодом. Исторический C-код, который «как-то собирается» по инструкции из 2010 года — знакомая картина. ForgeZero позволяет запустить параллельную сборку без трогания существующей системы, как инструмент аудита и постепенной миграции. Флаг -sanitize=false отключает санитайзеры для кода, который пока не готов к строгим проверкам — можно мигрировать постепенно, модуль за модулем.

Локальный стартап в КР/ЦА, работающий с IoT или промышленной автоматизацией. Прошивки для умных устройств, систем мониторинга, агро- и промышленной автоматизации — это C и ассемблер. Поддержка формата bin для загрузчиков и прошивок плюс кросс-компиляция для ARM закрывают типовой embedded-сценарий без необходимости покупать дорогие коммерческие IDE или настраивать сложный тулчейн с нуля.

Кейсы в личной жизни

Разработчик, осваивающий низкоуровневое программирование. ForgeZero — идеальный старт для тех, кто хочет разобраться с C и ассемблером, но не хочет тратить неделю на GNU Make. Запустил fz -init, написал код, запустил fz — получил исполняемый файл. LSP из первого запуска означает автодополнение и подсказки сразу, без ручной настройки clangd.

Системный программист или участник CTF. Интерактивный режим fz -shell для сборки одиночных файлов удобен при быстром прототипировании, написании shellcode на ассемблере, исследовании бинарей. Поддержка NASM, GAS и FASM в одном инструменте — не нужно переключаться между тулами в зависимости от задачи.

Студент или фрилансер с embedded-проектами. Кросс-компиляция для ARM и RISC-V без лишней настройки — плюс безопасное обновление через fz -update с откатом на fz.old. Можно обновиться до новой версии перед дедлайном и вернуться назад за одну команду, если что-то пошло не так.

Как применить сегодня

  • Установить ForgeZero с GitHub (MIT-лицензия), запустить fz -init в директории C/C++ проекта — структура и конфиг создаются автоматически за 30 секунд.
  • Запустить fz -compile-commands и подключить clangd в VSCode или Neovim — сравнить качество автодополнения до и после. Разница ощутимая.
  • Для embedded: установить кросс-тулчейн (arm-linux-gnueabihf-gcc), проверить fz -target arm-linux-gnueabihf на простом hello-world — убедиться, что кросс-компиляция работает без единого Makefile.
  • Включить параллельную сборку fz -j 0 (автоопределение числа ядер) на большом проекте и замерить время — на многоядерных машинах прирост бывает существенным.
  • Если у вас AI-сервис с C++-расширениями: попробовать заменить Makefile в одном модуле на ForgeZero и оценить, насколько упрощается CI/CD пайплайн и онбординг.
← Все статьи