Skip to content

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

Description

@Teakowa

Goal

Build opy-rs into an independent OverPy-compatible engine that owns OverPy language semantics and compiler behavior while integrating with canonical Workshop semantics from workshop-rs.

Context

opy-rs owns 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/program representation, settings/localization, validation, and emission. 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 canonical Program/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 independently of final Workshop text emission.
  • Lower supported OPY semantics through canonical workshop-rs contracts.
  • Advance compatibility from pinned upstream/oracle evidence, minimized regressions, representative real projects, and compiler-output differential comparison.
  • Treat systematic compiler-output drift as a compatibility residual unless it is explicitly classified as necessary or non-contractual.
  • Keep source-language and Workshop capability gaps 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, representation, or emission logic in opy-rs.
  • Adding WrightKit-only OverPy syntax or semantics.
  • Reproducing upstream internal architecture, helper implementation, or IR solely for fidelity.
  • Requiring byte/text-identical output for incidental whitespace or formatting differences that do not change Workshop structure, element cost, accepted syntax, diagnostics/provenance, or downstream behavior.
  • Hiding owner gaps behind text-reparse fallbacks, fixture-specific workarounds, or Wright-side semantic compensation.
  • Treating manually maintained status text, issue checklists, or support matrices as proof of 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 Workshop representation and emission with structured diagnostics and preserved provenance.
  • Representative compiler-output diffs converge toward upstream action/value identities, control-flow structure, string/value construction, and optimization/element-cost shape; unexplained systematic divergence remains explicit.
  • Compatibility claims are grounded in representative corpus and 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.

Ownership

  • OverPy language semantics and compiler behavior: opy-rs.
  • Canonical Workshop semantics and representation: workshop-rs.
  • Product integration/tooling consumption: wright.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions