slovo/docs/compiler/GLAGOL_COMPILER_MANIFEST.md
2026-05-22 08:38:43 +02:00

43 lines
1.6 KiB
Markdown

# Glagol Compiler Manifest: Principles for a Visible Typed Pipeline
Sanjin Gumbarevic<br>
hermeticum_lab@protonmail.com
> Make the tree visible.
Glagol (<span class="glagolitic">ⰃⰎⰀⰃⰑⰎ</span>) is the first compiler for Slovo. Its job is not merely to accept parenthesized text. Its job is to preserve Slovo's structure through parsing, checking, diagnostics, lowering, and executable output.
## Principles
- Slovo specifies first; Glagol implements second.
- Parse trees, ASTs, typed ASTs, and LLVM IR are separate compiler stages.
- LLVM emission starts from checked representation, not raw source forms.
- User-source errors produce diagnostics, not compiler panics.
- Formatter output, diagnostics, examples, tests, and docs are part of the
language contract.
- Native execution is a compiler target, but stable ABI promises require an
explicit future contract.
- Benchmarks are local evidence unless a release explicitly defines a broader
performance methodology.
## Support Rule
A source feature is supported only when Glagol can:
1. parse it
2. lower it
3. type-check it
4. format it when formatting applies
5. diagnose invalid forms structurally
6. emit valid LLVM or reject it before backend emission
7. cover it with automated tests and release documentation
Partial recognition is not support.
## Beta Rule
The first real beta compiler release is `1.0.0-beta`. It requires a matching
Slovo beta contract, conformance suite, stable diagnostics schema, stable
formatter behavior, stable package/manifest behavior, standard-library
compatibility rules, and release reviews with no blocking manifest drift.