docs(asm): Phase 0.2 — document <name>.build sidecar; Phase 0 complete
CLAUDE.md §Testing + §Test-layout now describe the optional `<name>.build` JSON config (aot + target keys, ir-only arch-gating, unknown-key-is-error) and list it among the `expected/` files, replacing the stale standalone `.aot` marker prose. Closes Phase 0 (corpus target-gating); next is Phase A (kw_asm keyword).
This commit is contained in:
@@ -6,7 +6,13 @@ commit, one step at a time per the cadence rule (no commit may both add a test
|
||||
and make it pass).
|
||||
|
||||
## Last completed step
|
||||
**0.1** — corpus runner **ir-only branch** for cross-target examples. Replaced
|
||||
**0.2** — docs: CLAUDE.md §Testing + §Test-layout now document the
|
||||
`<name>.build` JSON sidecar (`aot` + `target` keys, ir-only arch-gating,
|
||||
unknown-key-is-error) and list it alongside the other `expected/` files,
|
||||
replacing the stale standalone `.aot` marker prose. Docs-only — no build impact.
|
||||
**Phase 0 COMPLETE.**
|
||||
|
||||
Prior: **0.1** — corpus runner **ir-only branch** for cross-target examples. Replaced
|
||||
0.0's loud placeholder bail: when `cfg.target` doesn't match the host (`ir_only`),
|
||||
`sweepRoot` skips run/build/exec and verifies via `sx ir --target` only —
|
||||
asserting `.exit` (ir cmd) + `.ir` (normalized stdout) + `.stderr`, never
|
||||
@@ -30,10 +36,11 @@ in LLVM@19 `Core.h`; ERR-stream `extractvalue`→tuple in `emit_llvm.zig:726-927
|
||||
lib-less `extern`, 60 sites; `--target` a global CLI flag).
|
||||
|
||||
## Next step
|
||||
**0.2** — docs: update CLAUDE.md §"Testing"/§"Test layout" to document the
|
||||
`<name>.build` JSON config (`aot` + `target` keys, ir-only gating) replacing the
|
||||
standalone `.aot` marker prose (~lines 435, 492). Then Phase A (`kw_asm` keyword +
|
||||
lex test). See `PLAN-ASM.md` Phase 0 / Phase A.
|
||||
**A.0** (Phase A — first compiler code) — add the `kw_asm` keyword: `Token.Tag`
|
||||
entry + keyword `StaticStringMap` in `src/token.zig`, plus a unit lex test
|
||||
(`asm → kw_asm`). `volatile`/`clobbers` stay out of the global table
|
||||
(contextual). This is a **lock** commit (behavior-locking passing test). Then A.1
|
||||
(parse `asm { … }` → `AsmExpr`, lowering bails loudly). See `PLAN-ASM.md` Phase A.
|
||||
|
||||
## Log
|
||||
- (init) Plan + design doc written; ASM stream opened.
|
||||
@@ -44,6 +51,8 @@ lex test). See `PLAN-ASM.md` Phase 0 / Phase A.
|
||||
- (0.1) ir-only branch: cross-target examples verify via `sx ir --target` only
|
||||
(exit+ir+stderr, no stdout; `.ir` required). Locked with 1639 fixture; verified
|
||||
corrupt-.ir → mismatch and missing-.ir → loud failure. `zig build test` green.
|
||||
- (0.2) docs: CLAUDE.md documents `<name>.build` JSON sidecar (aot + target +
|
||||
ir-only gating), replacing stale `.aot` marker prose. **Phase 0 COMPLETE.**
|
||||
|
||||
## Known issues
|
||||
None yet.
|
||||
|
||||
Reference in New Issue
Block a user