Skip to content

Build an independent OSTW/DeltinScript-compatible implementation with canonical Workshop integration #1

Description

@Teakowa

Goal

Build deltin-rs into an independent, corpus-backed implementation of the declared OSTW/DeltinScript language and compiler semantics, integrated with the canonical workshop-rs backend without duplicating Workshop ownership.

Context

deltin-rs owns DEL/OSTW project loading, source syntax, semantic analysis, type/runtime semantics, typed backend-neutral HIR, diagnostics/provenance, source-language tooling, lowering, and scoped reconstruction.

workshop-rs owns canonical raw Workshop semantics, WIR, catalog, validation, localization, settings, and emission.

The durable forward boundary is:

DEL/OSTW source -> source/project model -> DEL semantic model -> typed DEL HIR -> workshop-rs canonical WIR -> validation/emission

Compatibility targets observable semantics for the declared support surface, not upstream compiler architecture or output-text identity.

Scope

  • Maintain provenance-aware compatibility evidence against pinned OSTW/DeltinScript references and representative real projects.
  • Own recoverable parsing, multi-file/import behavior, semantic resolution, type checking, advanced DEL/OSTW language/runtime semantics, and typed backend-neutral HIR.
  • Expose semantic APIs useful for check, diagnostics, inspect, lint, validated source tooling, CI, and agents independently of Workshop emission.
  • Integrate Workshop builtins/catalog binding, concrete runtime lowering, WIR validation, settings, localization, and emission strictly through canonical workshop-rs contracts.
  • Model target-specific allocation, deletion, references, virtual dispatch, storage, recursion, closures, and related runtime behavior only where observable DEL/OSTW semantics require it.
  • Use semantic/normalized Workshop equivalence and runtime-sensitive evidence rather than compiler-output identity as the compatibility target.
  • Pursue Workshop -> DEL/OSTW reconstruction only through a separately reviewed useful-source/semantic-equivalence contract with explicit information-loss boundaries.

Non-goals

  • Reproducing the VS Code extension or editor UI as part of core language compatibility.
  • Copying upstream compiler architecture, temporary variables, optimizer internals, formatting, helper naming, or byte-identical Workshop output.
  • Duplicating canonical Workshop actions, values, events, settings, locale/catalog data, parser, WIR, validation, or emitter logic in deltin-rs.
  • Treating every utility in the upstream repository as part of the compatibility contract without evidence.
  • Freezing reconstruction architecture before forward integration establishes a useful canonical round-trip boundary.
  • Maintaining live implementation progress, release versions, or active-child status in this parent issue.

Acceptance criteria

  • The declared OSTW/DeltinScript language/compiler surface is tracked by provenance-aware executable evidence with explicit compatibility states.
  • Supported source can be parsed, resolved, inspected, and diagnosed independently of Workshop emission.
  • High-level language/runtime semantics have corpus-backed tests independent of concrete Workshop encoding.
  • Supported end-to-end source lowers to canonical Workshop semantics and emits through workshop-rs with evidence-backed behavior.
  • Workshop-dependent and unsupported gaps remain explicit rather than being hidden by output differences or counted as successful compatibility.
  • deltin-rs never becomes a second authoritative Workshop implementation.
  • Cross-repository gaps follow the owner sequence: owning repo -> owner contract/tests -> consumable contract/release -> deltin-rs integration -> corpus/real-workflow verification.
  • Workshop -> DEL/OSTW reconstruction is validated against the established forward/canonical semantic boundary rather than literal source recovery.

Related work

Forward Workshop integration and reconstruction are decomposed into executable child/follow-up issues. Their current state and execution ordering should be derived from GitHub relationships, PRs, releases, and executable evidence rather than duplicated here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions