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

The active source-language completion program is #88, organized by category rather than individual corpus residuals. It has a product constraint of at most 10 non-release implementation PRs across its five capability workstreams.

Workshop -> OPY reconstruction (#53) and compatibility-harness retirement planning (#117) remain separate later lanes and should not preempt #88 while source-language compatibility is incomplete.

Current execution state, ordering inside a capability block, release versions, and corpus frontiers should be derived from GitHub and executable evidence rather than copied into this parent issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions