Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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-L and OSL-P diagnostics.
  • The parser accepts condition, entity, mutation, task, and drop declarations.
  • Condition, entity, mutation, and task declarations generate sourced semantic changes for their supported entries.
  • Top-level drop declarations 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-C diagnostics.
  • Dependency cycles produce OSL-O diagnostics.
  • 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.