12.3 Language law vs implementation
language-meta owns user-visible semantics; compiler, execution, tooling, and core-library realize them.
Language law vs implementation
Ask: “What does valid Beskid code mean?” → Language meta.
Ask: “Which crate phase does that?” → Compiler, Execution, Core library, Tooling.
| Concern | Owning surface | Realization |
|---|---|---|
| Syntax, types, contracts, memory, spawn | language-meta | beskid_analysis, beskid_codegen |
| Manifests, CLI commands, LSP UX | tooling | beskid_cli, beskid_lsp |
| Runtime ABI, scheduler, GC | execution | beskid_runtime, beskid_engine, beskid_abi |
| Standard library API | core-library | corelib packages in compiler/corelib |
Implementation domains defer with relatedTopics—they do not redefine normative tables copied from language-meta (Spec authority).
Example: spawn
Section titled “Example: spawn”- Law: Fibers and spawn
- Lowering: Fiber scheduler and stacks
- API: Concurrency package
Example: beskid test
Section titled “Example: beskid test”- Law: Testing
- CLI: Build / analyze / run contract