Contributor and implementer facts for Echo. User-facing product documentation
lives under www/ and is published at https://xo.run.
| Doc | Role |
|---|---|
../AGENTS.md |
Workflow and invariants for humans/agents |
../CONTRIBUTING.md |
How to contribute; CLA by submission |
../CLA.md |
Contributor agreement (IP assignment to Christoffer Hallas) |
../LICENSE |
MIT License (copyright Christoffer Hallas) |
../SECURITY.md |
Vulnerability reporting (oss@christofferhallas.com) |
architecture.md |
Crate ownership and pipeline sketch |
sota-gaps.md |
Current vs SOTA spine; gap inventory |
pipeline.md |
Full spine + hosts (fmt, LSP, REPL, e26) + build-out order |
incremental.md |
Fingerprint / cache / build plan (orthogonal infra) |
implementation.md |
Per-feature vertical checklist (all layers) |
glossary.md |
Shared vocabulary |
development-speed.md |
Local tools, gate, edit loop |
install.md |
XDG install / upgrade / uninstall (scripts/install.sh) |
ci.md |
GitHub Actions multi-OS build + Linux echo26 gate |
roadmap.md |
Language coverage map + design/impl status |
fixtures.md |
Echo 2026 suite (echo26/ / e26) conventions |
testing.md |
How to test: crate / echo26 / examples / xo test |
| Doc | Role |
|---|---|
adr/ |
Architecture decision records (compiler/platform; surface ADRs as needed) |
| Doc | Domain |
|---|---|
syntax.md |
Implementer language surface for Echo 2026 (core locked) |
| ADR 0015 | Edition name + canonical public Spec ownership |
lexer.md |
Tokens and lexing rules |
semantics.md |
Scopes, Result/Option, inference direction |
modules.md |
Imports, packages, %/@ merge |
roadmap.md |
Entire language map + phases |
Expand as the corresponding layer gains real rules. Status may be “not started.”
| Doc | Domain |
|---|---|
parser.md |
Parsing and AST construction |
hir.md |
High-level IR (active) |
mir.md |
Mid-level executable IR (active) |
diagnostics.md |
Diagnostic codes and contracts |
runtime-abi.md |
Runtime symbols and ABI |
memory.md |
Scope-owned reclamation (not tracing GC; ADR 0016) |
stdlib.md |
Standard library surface |
stdlib-go-gaps.md |
Echo std vs Go stdlib gap inventory |
llvm.md |
Codegen, optimization, link |
lsp.md |
Language server boundary |
repl.md |
Interactive REPL (xo repl, JIT) |
tree-sitter.md |
Generated tree-sitter grammar (xo tools grammar tree-sitter) |
reflection.md |
Tools echo_reflection vs userland std/reflect |
incremental.md |
Cache / fingerprint / build |
- Sticky decision → ADR (when it must stick).
- Who owns a concept →
architecture.md/glossary.md/pipeline.md. - Language rule →
syntax.md/lexer.md/semantics.md/modules.md+roadmap.md. - How to implement a feature end-to-end →
implementation.mdchecklist. - How to run something →
development-speed.mdorAGENTS.md. - User-facing explanation →
www/once the site page exists.
Proof of behavior always belongs in tests or fixtures; docs state the rule.