Нативный компилятор · субстрат

HEXA-LANG

Полностью hexa-native компилятор — теоремы, привязанные к atlas, без LLVM в цепочке
170×
производительность codegen · S1 готов
~94s
24k строк codegen · S2 PASS
0
LLVM, по политике
HEXA-LANG
↓ прокрутить

Компилятор, который ссылается

hexa-lang — это self-hosted нативный компилятор. Каждая строка с формулой ссылается на теорему atlas, каждая сборка проходит восемь стадий strict-lint, и ничто непроверенное не покидает инструментарий. Это самый низ стека dancinlab — wilson, echoes, anima и семейство hexa-* потребляют его; ничто не импортируется обратно.

Большинство компиляторов доверяют программисту. hexa-lang — нет: он спрашивает каждую формулу, откуда она. Строка математики, не ссылающаяся на теорему atlas, — это не предупреждение, а провал сборки. Компилятор бутстрапит себя до bit-stable fixpoint, генерирует собственный машинный код без LLVM в цепочке и трактует provenance как инвариант уровня типов, а не как любезность при код-ревью.

Ключевые возможности

Теоремы, привязанные к atlas: Каждая формула должна ссылаться на запись atlas. Четвёртая стадия strict-lint отклоняет сборку, если в строке формулы нет ссылки — provenance это инвариант времени компиляции, а не соглашение.
Без LLVM, без транспиляции в C: Полностью self-hosted. Эмиссия C существует лишь как переносимый артефакт; архитектура — hexa-native, компилируется в собственный машинный код.
n=6 примитивы совершенного числа: Компилятор построен на шести примитивах и шести стадиях. Решётка n=6 — это инструмент, используемый внутри, и никогда не ограничение на то, что язык может выразить.

Как выполняется сборка

01
Parse
Исходный код входит во фронтенд — токенизируется, разбирается и разрешается в типизированное синтаксическое дерево.
02
Strict-Lint
Восемь стадий контролируют сборку: целостность atlas, совпадение ссылок, корректность формул, надёжность типов.
03
Lower
Дерево понижается через HIR, MIR и LIR — каждый уровень меньше и явнее предыдущего.
04
Native Codegen
LIR напрямую выдаёт нативный машинный код. Без LLVM, без транспиляции — self-hosted путь.

Связанный инструментарий

01

Self-hosted бутстрап

↳ Компилятор компилирует сам себя, бит в бит.

aprime_cc достигает bit-stable self-host fixpoint — ap1f, ap2f, ap3f байт в байт идентичны. Компилятор точно воспроизводит собственный вывод, без интерпретатора и без стороннего бэкенда в цепочке.

02

Lint с обязательными ссылками

↳ Восемь стадий strict-lint при каждой сборке.

Целостность atlas, совпадение ссылок, корректность формул, надёжность типов — каждое из них есть барьер. Сборка, пропустившая ссылку, не компилируется; честность обеспечивает инструментарий, а не ревьюер.

03

HEXA-NATIVE-ONLY

↳ Без LLVM, без GHC, без среды выполнения Rust.

Язык сам отвечает за генерацию своего кода. Путь через C — это запасной вариант ради переносимости, но никогда не архитектура; канонический путь — self-hosted нативный.

04

Экосистема ниже по течению

↳ Весь стек компилируется через него.

Агент wilson, журнал открытий echoes, модель сознания anima и семейство hexa-* — chip, bio, matter, arch — все находятся ниже по течению. hexa-lang — это субстрат, который они разделяют.

Кампания за полностью hexa-native

Компилятор переходит на полностью hexa-native через семь измеренных стадий. S1 — производительность codegen: DONE, узкое место O(N²) в lower_hir устранено, ускорение 170×. S2 — полный прогон codegen: PASS, 24k строк компилируются от начала до конца за ~94s, ноль ошибок. S3 — self-host fixpoint: В ПРОЦЕССЕ, доказательство byte-stable для gen1 → gen2 → gen3 — ключевые ворота. S4 — вывод hexa_v2: зависит от S3. S5 — нативный build-бэкенд: DONE, селектор HEXA_BACKEND=native через env. S6 — проходы оптимизации: ОЖИДАЕТ. S7 — собственный assembler + linker: ОЖИДАЕТ. Каждая стадия — measured-or-it-did-not-happen; никаких заявлений о self-host до закрытия S3.