Current limitations
OSL is under active development. The parser recognizes more of the planned language than change generation and engine validation currently support.
Available now
- Lexing and parsing retain source spans and produce
OSL-LandOSL-Pdiagnostics. - The parser accepts condition, entity, mutation, task, and
dropdeclarations. - Condition, entity, mutation, and task declarations generate sourced semantic changes for their supported entries.
- Top-level
dropdeclarations generate delete changes. - Supported string escapes are decoded into semantic values.
- Unary expressions and
location(latitude, longitude)values lower with checked coordinate bounds and precision. - Generated changes are dependency-ordered within the current batch.
- Supported change-generation failures produce
OSL-Cdiagnostics. - Dependency cycles produce
OSL-Odiagnostics. - The repository includes a CLI for checking one file or standard input.
Not complete yet
- Generated changes are not applied to the engine, validated against stored twin state, or persisted.
- References remain symbolic. OSL does not resolve local or forward declarations, validate paths or roles, or accept a separate base source.
- Unit labels are stored but not converted or checked for dimensional compatibility.
- General expressions are not type-checked, and condition values are not checked against declared variants.
- Resource access, mutation binding, requirements, transformations, and tasks are not evaluated.
- OSL does not materialize source into a durable twin, replay history, simulate operations, select plans, or optimize decisions.
- Comments, a formatter, canonical formatting, a public package, and a standalone installer are not available.
A successful osmiron-dsl check only means that parsing and the change
generation paths reached by that file completed. It is not proof that every
declaration produced changes or that the model is valid.