ForgeZero: автономная система сборки для C/C++ без CMake и внешних assembler’ов

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?

1