ForgeZero: автономная система сборки для C/C++ без CMake и внешних assembler’ов
Привет, vc.ru.
Делаем ForgeZero — автономную систему сборки для C/C++ и ассемблера. Идея простая: что-то вроде Cargo, только для сишников.
Изначально ForgeZero опирался на внешние toolchain-компоненты, но это сразу упиралось в лишние зависимости, нестабильное поведение между платформами и накладные расходы на запуск внешних процессов.
Поэтому сейчас переносим критическую часть сборочного пайплайна внутрь системы: пишем собственный build engine и встроенный assembler backend, который напрямую эмитит машинный код без FASM/NASM.
Что уже работает (на скриншоте):
В системе отсутствуют системные assembler’ы: fasm/nasm → command not found.fz/internal/assembler на Go самостоятельно кодирует x86_64-инструкции в opcodes.TestEmitZeroAllocs_x86_64 проходит за 0.00s с 0 heap allocations.Сейчас стабилизируем x86_64 backend, дальше — ARM и RISC-V.
Цель — чтобы embedded-разработчик мог собрать и прошить микроконтроллер одной командой:
fz run
без CMake, vendor SDK и многослойных HAL.
Интересно, есть ли спрос на такой инструмент, или мы действительно собираем самый сложный велосипед в истории C?