Skip to content

Integrate DEL lowering and runtime compatibility with workshop-rs #8

Description

@Teakowa

Parent: #1

Goal

Connect the completed DEL/OSTW semantic implementation and typed HIR to the canonical workshop-rs model and complete the Workshop-dependent compiler/runtime compatibility surface.

Current integration baseline

The former dependency blocker is resolved:

  • Reach Workshop-independent DEL/OSTW frontend completeness and expose tooling APIs #7 Workshop-independent language readiness is complete.
  • wrightkit/workshop-rs#2 canonical core is complete.
  • wrightkit/workshop-rs#12 canonical rule-event surface is complete.
  • Wright cutover #143 is complete and Wright v0.2.4 is released using workshop-rs as the single canonical Workshop implementation.
  • workshop-rs 0.1.1 is published on crates.io and includes the reviewed event contract. deltin-rs should consume this released crate rather than a Git SHA.

Integration identity is now release-based: declared crate version + exact Cargo.lock resolution + workshop-rs CatalogIdentity. A manually synchronized repository revision constant is not part of the public contract.

Execution issues

Cross-repository / evidence work:

Scope

  • Consume authoritative Workshop actions, values, events, enums, settings, content identifiers, WIR, validation, localization, and emission through documented workshop-rs public contracts.
  • Resolve Workshop-facing names through a deltin-rs-owned WorkshopProvider adapter backed by the canonical catalog; dependency direction remains deltin-rs -> workshop-rs.
  • Lower typed DEL HIR into canonical WIR while preserving source provenance and keeping concrete target encodings out of source-language/HIR contracts.
  • Implement Workshop-dependent lowering for rules, expressions, storage intent, classes/objects, allocation/deletion, virtual dispatch, references/generation validation, recursion, lambdas, strings, embedded Workshop, settings, and other inventory-backed runtime/compiler semantics.
  • Implement variable/storage allocation and target-specific helper structures only where required by observable DEL/OSTW semantics, Workshop validity/limits, or evidence-backed stability/cost contracts.
  • Run focused, minimized, and real-project end-to-end compatibility tests using semantic/normalized Workshop equivalence rather than generated-text identity.
  • Advance workshop-lowering.* support-matrix entries to end-to-end-supported only with concrete source and canonical Workshop evidence.

Non-goals

  • Reintroducing canonical Workshop semantics, catalog data, locale tables, WIR, parser, validation, or emitter implementation into deltin-rs.
  • Coupling workshop-rs back to DEL-specific syntax or semantics.
  • Matching upstream temporary variables, helper-rule names, formatting, storage layouts, optimizer internals, or emitted text where observable semantics do not require them.
  • Treating output-format preferences as correctness requirements unless a declared source/round-trip contract requires otherwise.
  • Workshop -> DEL decompilation; tracked separately in Add Workshop-to-DEL decompilation and close remaining declared compatibility gaps #9 after forward integration is stable.

Acceptance criteria

  • deltin-rs consumes Workshop semantics only through reviewed released workshop-rs public contracts, with reproducibility provided by the crate version, lockfile resolution, and catalog identity.
  • Supported DEL/OSTW corpus and representative real-world projects lower to valid canonical WIR and emit through workshop-rs.
  • Runtime-sensitive features such as allocation/deletion, inheritance/dispatch, stale-reference validation, recursion, closures, and storage semantics have end-to-end evidence.
  • Project/compiler surfaces such as embedded Workshop, settings, strings, comments, and chase/modify behavior have explicit evidence-backed supported/unsupported states.
  • Workshop-dependent support-matrix entries advance to end-to-end-supported only with tests; known gaps remain explicit and are never counted as passes.
  • Missing canonical Workshop capabilities are fixed in the owning workshop-rs repository rather than duplicated or approximated locally.
  • Existing Workshop-independent parse/check/inspect/HIR/tooling behavior stays regression-green.
  • No authoritative Workshop implementation is duplicated in deltin-rs.

Dependencies

The original readiness and event-contract dependencies are satisfied. The remaining cross-repository dependency for the final compatibility gate is capability evidence from workshop-rs#10; it does not block core/runtime lowering.

Planning notes

Land #29, then complete #30 against released workshop-rs 0.1.1. After the core lowering boundary is stable, #31 and #32 can proceed in parallel where their dependencies do not overlap. Keep #26 evidence work parallel. Use #33 as the integration/release gate, then reassess #9 from the actual forward contract rather than designing the decompiler early.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions