v0.17.12 — ARCH-001 internal packages, 12/18 coverage ≥80%, 13 panics→errors
Enterprise Architecture Refactoring (ARCH-001)
All backends restructured following DXIL internal package pattern.
Internal packages (DXIL pattern applied to all backends)
- glsl/, msl/, hlsl/, spirv/ →
internal/codegen/ - wgsl/ →
internal/parser/+internal/lower/ - Shared:
internal/textutil/(IndentWriter DRY),internal/backend/(namer, sig packing),internal/registry/(type dedup) - Public API: real types, not aliases. go doc shows full struct definitions.
Test coverage (12/18 packages ≥80%)
| 100% | textutil, dxil/module |
|---|---|
| 83-97% | backend, mem2reg, dce, parser, bitcode, viewid, sroa, ir, container, glsl |
Error handling
- 13 panics → error returns across all backends
- 2 nilerr fixes (spirv silently swallowed errors)
- Unsupported stage validation (mesh/task → clear error)
- 11 dead functions removed (-929 LOC)
Metrics (unchanged)
- gg production: 61/61 (100%)
- DXC golden diff=0: 105 (55.1% parity)
- IDxcValidator: 161/170 (94.7%)
- golangci-lint: 0 issues