Tracker
Roadmap search
Versions, deliverables, workstreams, tasks, and pages
Typed emitter and transforms - Contracts and edge cases
articleStandard
src/content/docs/platform-spec/compiler/compiler-mods/typed-emitter-and-transforms/contracts-and-edge-cases.mdx
import SpecArticleChrome from '@beskid/beskid-ui/platform-spec/SpecArticleChrome.astro';
<SpecArticleChrome />This article states contracts and edge cases for Typed emitter and transforms.
Hard requirements
- Deterministic ordering — discovery and execution order must be reproducible from equal inputs (path-normalized roots, sorted files, stable tie-breaks).
- Bounded work — host enforces step limits, allocation caps, and recursion depth across nested meta calls.
- Versioned facades —
Beskid.Compilersurface is tied to compiler language version tokens exposed on the compilation instance.
Edge cases
- Partial programs — facades must tolerate incomplete syntax where the language permits; diagnostics are preferred over host panics.
- Conflicting edits — multiple meta contributors touching the same declaration identity produce a deterministic merge failure surfaced as structured diagnostics.