Parent: knowledge tree. Intent: mission.
Durable rationale: design decisions. Live state:
docs/current-status.md.
The compiler turns a closed typed module graph into JavaScript and, for the portable subset, C/native. Correctness and boundary contracts constrain legal artifacts; the configured objective ranks only legal alternatives.
- Architecture router — authority and reading order
- Current architecture — implemented pipeline and gaps
- Planned architecture — smallest intended replacement
- Objectives — size/performance × raw/gzip/Brotli; exact vs heuristic
- Decision registry — implemented choice census
- Global optima — why local “smaller” can lose gzip/Brotli
- Pipeline — stages, single vs split vs native
- Linking and lowering — AST to typed CFG
- Analyses — effects, escape, ranges, alias/call facts
- Optimizer — pass order and
[optimization]gates - DCE and tree shaking
- Inlining, specialization, sharing
- Aggregate lowering — scalar, positional, named
- Class identity — when a constructor must stay ES
class - Compress passes — fusion, sinking, outlining
- Emission — spelling,
IrJsOptions - Mangling, layout, pooling
- Candidate search — two-level search, beam, budgets
- Peephole — parsed generated-JS migration layer
- Chunk planning
- Planned migration is the executable order.
- Ledger is live task state.
- Goal architecture and phase 07 are archived design history; they do not override the smaller current plan.