Specification
How to read the Sounio language spec and where it may differ from the implementation.
Specification
The spec remains important, but in the current repo it should be read as one layer of truth rather than the whole truth. Comprehensive docs need to explain how to use the spec together with artifacts, tests, and source layout instead of treating it as a complete description of present-tense behavior.
How to use the spec correctly
- Use the spec to understand the intended language model and terminology.
- Use
souc check, fixtures, and status artifacts to understand what the currently recommended artifact actually enforces. - Use source directories such as
self-hosted/check/,self-hosted/parser/, andself-hosted/native/to understand how implementation work is structured today.
What the spec is especially good for
- Cross-cutting concepts such as effects, epistemic types, units, and refinements.
- Long-range design intent that spans more than one backend or subsystem.
- Vocabulary and formal framing that help make sense of the more implementation-focused repo docs.
What the spec does not replace
- Current artifact status from
souc info. - Fixture-backed proof from
tests/run-pass/,tests/compile-fail/, andtests/stdlib/. - Machine-readable status artifacts under
artifacts/stdlib/.