Skip to content
Beskid Platform specification

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

Glossary and conformance

Platform spec node

Glossary and conformance

Spec standingStandard

Owner
Piotr Mikstacki
Submitter
Piotr Mikstacki

This chapter is the normative vocabulary for all Beskid platform specifications. Other language-meta articles, compiler features, execution contracts, and core-library packages must use these terms and requirement keywords consistently. Informative material (book, guides, workshop notes) must not override text marked Standard here.

  • In scope: requirement keywords (RFC 2119 profile), Beskid conformance levels, maturity of spec pages, diagnostic severity vocabulary, and cross-domain authority boundaries.
  • Out of scope: compiler pipeline ordering, manifest schema keys, and runtime ABI details (owned by sibling domains; they must defer to language-meta for user-visible semantics).

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in normative sections are to be interpreted as described in RFC 2119 and RFC 8174 (BCP 14).

KeywordMeaning in Beskid specs
MUST / REQUIRED / SHALLAbsolute requirement for conformance at the stated level
MUST NOT / SHALL NOTAbsolute prohibition
SHOULD / RECOMMENDEDStrong default; deviation requires explicit rationale in ## Decisions
SHOULD NOTStrong discouragement; allowed only with documented exception
MAY / OPTIONALTruly optional behavior or surface

Normative sections must use uppercase keywords. Lowercase must in running prose is informative unless the sentence is inside a quoted normative rule.

Implementations are evaluated against language-meta (Standard articles) plus explicitly linked domain contracts.

LevelDefinitionVerification
L0 — ParseAccepts all programs in the v0.1 grammar without internal compiler failureParser + beskid.pest fixture suite
L1 — Name and moduleResolves modules, imports, and visibility per Modules and visibility and Name resolutionResolver tests; E11xx band
L2 — TypeAssigns types and rejects ill-typed programs per Types and related chaptersbeskid_analysis type tests; E12xx–E13xx
L3 — SemanticEnforces contracts, control flow, events, memory rules, and composition/DI where applicableSemantic + composition tests; E14xx–E17xx
L4 — ExecutableLowered program behavior matches execution + core-library contracts for the chosen target tripleRuntime tests, ABI checks

A conforming reference compiler must reach L3 for all Standard language-meta chapters in this repository snapshot. L4 is claimed per target profile (native, WASM, etc.) in execution and core-library specs.

statusMeaning
StandardEnforceable MUST/SHOULD text; implementation and diagnostics must align or the page must be downgraded
ProposedDesign in flux; implementations may diverge with tracked gaps

A page marked Standard must not consist solely of navigation boilerplate or self-referential “canonical chapter” links. It must include a Normative specification section with testable rules.

TermRule
Error (E####)Denotes ill-formed or ill-typed program; compilation must fail
Warning (W####)Denotes suspicious but legal program; compilation may succeed
NoteInformative attachment; never alone changes exit code

Stable codes live in the Diagnostic code registry. Language-meta chapters cite bands (for example E11xx resolution); exact messages may evolve while codes remain stable.

DomainOwnsMust not redefine
language-metaUser-visible syntax, types, evaluation, contracts, memory, testing surface
compilerPhases, IR, lowering, diagnostic emission mechanicsLanguage semantics
executionSchedulers, stacks, channels, runtime servicesType rules, spawn typing contract
core-libraryHost bases, concurrency types, console I/O packagesGrammar and name lookup
toolingCLI, LSP, manifest authoring UXResolution graph semantics (defer to compiler)

Cross-domain pages must link to the owning language-meta chapter with relation: defers-to or implements in relatedTopics.

TermDefinition
ProgramA finite sequence of ItemWithDocs forming a compilation unit per Lexical and syntax
ModuleA named namespace boundary introduced by mod or file-scoped mod path;
TypeA static description of values; see Types
ContractA surface of required members checked structurally; see Contracts
FiberCooperative task handle produced by spawn; see Fibers and spawn
ChannelCross-fiber communication primitive; memory sharing must go through channels per Memory and references
Option<T>The sole optional-value surface in v0.1 (corelib Query.Contracts.Option); must not be spelled optional or ?T
nullMust not exist as a type, literal, or implicit default; absence uses Option<T>::None or explicit enums
ref TBy-reference parameter or signature form; distinct from nullable or pointer types (see Memory and references)
GC heapTraced object store with concurrent mark-sweep; runtime details in execution specs; /execution/ tree is a non-normative legacy bridge only

Editors must update lastReviewed when normative text changes. Tier-1 language-meta chapters must include ## Decisions for non-obvious choices. Verification anchors should name crate paths or test directories where the reference compiler enforces the rule.

  • D-LM-CONF-001 — RFC 2119 profile: Beskid adopts BCP 14 keywords in all Standard platform-spec normative sections; the book remains informative.
  • D-LM-CONF-002 — L0–L4 ladder: Conformance levels are cumulative; claiming L4 without L3 is non-conformant marketing, not a partial compiler.
  • D-LM-CONF-003 — Standard without body: Any Standard page failing substantive content gates must be downgraded to Proposed until restored (Track A removes circular stubs).
  • D-LM-CONF-004 — Diagnostic bands: Language chapters reference code bands; per-message wording is implementation detail owned by the registry feature.

Defines MUST / SHOULD / MAY usage across all Beskid specifications. Every diagnostic and platform RFC should reference this vocabulary consistently. Use this page before authoring or reviewing any other language-meta chapter.