This directory documents GOWDK compiler behavior, internal handoffs, and generated-output contracts.
.gwdk source
-> shared tokenizer and parser
-> typed source AST (`internal/gwdkast`)
-> analyzed program records (`internal/gwdkanalysis`)
-> compiler IR (`internal/gwdkir`)
-> validation, discovery, and Go binding (`internal/compiler`)
-> build and application generation (`internal/buildgen`, `internal/appgen`)
-> go/format
-> optional go build
internal/gwdkir.Program is the compiler handoff consumed by generated-output
passes. The full package ownership and compatibility boundaries live in
Architecture.
| Topic | Source |
|---|---|
| Accepted language syntax | Language Conformance |
| Source discovery and project layout | Project Structure |
| Compiler phases | Pipeline |
| Generated files and directories | Generated Output |
| Browser runtime and islands | Browser Compiler |
| Build-report schema | Build Report |
| Public manifest output | Reference Manifest |
| Cache-key model | Incremental Cache Keys |
| Syntax-change checklist | Syntax Contributor Checklist |
| Current product maturity | Product Requirements |
Compiler docs should describe observable contracts and stable handoffs. Avoid copying an exhaustive capability list from requirements or architecture; link to the owning document instead.
- A syntax change updates language docs, conformance coverage, diagnostics, IR, generation, and examples together.
- A generated artifact change updates the generated-output, manifest, or build report contract that owns it.
- A compiler boundary change updates architecture and usually requires an ADR.
- A capability status change updates product requirements instead of adding a second status list here.