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/source mapping, source-language tooling, compiler behavior, and scoped Workshop -> OPY reconstruction.

workshop-rs owns canonical Workshop semantics, catalog, public 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 Program -> validation/emission

Scope

  • Parse and preprocess supported OverPy source with recoverable diagnostics and accurate authored-source locations.
  • 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.
  • Protect compatibility through ordinary tests, pinned upstream reference comparisons, focused regressions, and representative real-project workflows where they add independent coverage.
  • Converge supported forward compiler output structurally on the pinned OverPy reference within the current compatibility contract; keep approved exceptions explicit and tested.
  • 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 text-identical output for formatting differences outside the structural compiler contract.
  • Hiding owner gaps behind text-reparse fallbacks, fixture-specific workarounds, or Wright-side semantic compensation.
  • Treating manually maintained status text, issue checklists, or support inventories as proof of compatibility.

Acceptance criteria

  • Supported OPY source can be parsed, semantically resolved, inspected, and diagnosed without depending on an upstream runtime.
  • Supported OPY programs lower through the canonical Workshop Program boundary with structured diagnostics and source mapping where authored locations exist.
  • Forward compiler behavior within the declared support surface is protected by owner tests and pinned reference comparisons appropriate to the capability.
  • Representative real-project workflows are used when they protect interactions not economically covered by focused tests.
  • No authoritative Workshop semantics are duplicated in opy-rs.
  • Cross-repository gaps follow the owner sequence: owner contract/tests -> consumable release/revision -> opy-rs integration -> 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