Skip to content

Build an independent OverPy-compatible engine with canonical Workshop integration #1

Description

@Teakowa

Goal

Build opy-rs into an independent, corpus-backed implementation of OverPy source-language semantics and connect it to canonical Workshop semantics without duplicating Workshop ownership.

Context

opy-rs is the owning implementation for OverPy syntax, preprocessing/macros, semantic resolution, HIR, diagnostics/provenance, source-language tooling, compiler behavior, and scoped Workshop -> OPY reconstruction.

workshop-rs owns canonical Workshop semantics, catalog, WIR, settings/localization, validation, emission, and Workshop semantic carriers. Wright consumes these owner capabilities and must not fill missing OPY or Workshop semantics in the integration layer.

The durable forward data flow is:

OPY source -> parse/preprocess -> semantic resolution/HIR -> OPY lowering -> workshop-rs WIR -> validation/emission

Scope

  • Parse and preprocess supported OverPy source with recoverable diagnostics and source provenance.
  • Resolve declarations, expressions, receivers/members, builtins, enums/constants, macros, directives, settings, and other declared language semantics into a tooling-usable semantic model.
  • Expose semantic APIs suitable for check, diagnostics, inspect, lint, validated source tooling, CI, and agent workflows independent of final Workshop text emission.
  • Lower supported OPY semantics through canonical workshop-rs WIR and emission contracts.
  • Advance compatibility from pinned upstream/oracle evidence, minimized regressions, and representative real projects rather than compiler-output shape.
  • Keep source-language and Workshop capability gaps explicitly attributable to their owning repository.
  • Treat Workshop -> OPY reconstruction as a separately reviewed semantic-equivalence/useful-source capability with explicit information-loss boundaries.

Non-goals

  • Duplicating canonical Workshop actions, values, events, enums, settings, localization, validation, WIR, or emission logic in opy-rs.
  • Adding WrightKit-only OverPy syntax or language semantics.
  • Reproducing upstream implementation architecture, helper names, optimizer structure, temporary-variable allocation, formatting, or byte/text-identical Workshop output unless observable semantics require it.
  • Hiding owner gaps behind text-reparse fallbacks, fixture-specific workarounds, or Wright-side semantic compensation.
  • Treating a manually maintained issue checklist or support matrix as proof of real-project compatibility.

Acceptance criteria

  • The declared OPY language/tooling surface is independently usable and backed by provenance-aware executable evidence.
  • Supported OPY source can be parsed, semantically resolved, inspected, and diagnosed without depending on an upstream runtime.
  • Supported OPY programs lower through canonical WIR and Workshop emission with structured diagnostics and preserved provenance.
  • Compatibility claims are grounded in representative corpus/real-project evidence; unsupported or inconclusive gaps remain explicit.
  • No authoritative Workshop semantics are duplicated in opy-rs.
  • Cross-repository gaps follow the owner sequence: owning contract/tests -> consumable contract/release -> opy-rs integration -> corpus/real-workflow verification.
  • Reconstruction, where supported, follows an explicit semantic-equivalence/useful-source contract rather than promising literal recovery.

Planning

#158 / PR #159 established the current offline conformance baseline. Historical #88 implementation work remains useful provenance, but its completion state and old compile-status expectations are not the current compatibility proof.

Current convergence order follows the source-to-target pipeline:

  1. Converge parser and source-form conformance exposed by #158 #160 — lexical/parser/source-form conformance.
  2. Converge preprocessing and project-composition conformance exposed by #158 #161 — preprocessing, directives, macros, and project composition.
  3. Converge semantic resolution and catalog-backed source conformance exposed by #158 #162 — semantic resolution, builtins, members, enums, aliases, and binders.
  4. Converge residual OPY compiler and canonical-WIR gaps #157 — residual compiler/canonical-WIR convergence after the source-language stages are cleanly classified.

Each workstream consumes the durable #158 oracle/conformance expectations and must not redefine them around implementation fixes. Newly exposed cases should remain grouped by root capability rather than fixture-by-fixture work.

Workshop -> OPY reconstruction (#53) and compatibility-harness retirement planning (#117) remain later lanes and should not preempt active forward compatibility convergence.

Current execution state, release versions, and corpus frontiers must be derived from GitHub and generated conformance evidence rather than historical completion claims.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions