Skip to content

[OPY baseline] Implement semantic compatibility manifest and systematic builtin/member/signature coverage #109

Description

@Teakowa

Parent: #106
Depends on: #104, #105

Goal

Implement the Wright-owned OPY semantic compatibility manifest specified by #106 and use it to replace corpus-accidental builtin/member/enum resolution with a systematic, reference-validated semantic baseline.

This is the keystone implementation task from the #106 rebaseline. The manifest is compile-time language-compatibility metadata for the native OPY frontend; it is not the runtime/content registry deferred in #96.

Context

#106 established that Wright's parse surface is broader than its semantic/compile surface. Generic actions/values may parse and lower but fail only at Workshop emission, receiver/member coverage is manually limited, signatures/arity are not represented systematically, and KNOWN_ENUMS duplicates a separate subset of enum knowledge.

The accepted planning specification is docs/opy/compat-manifest-spec.md, backed by the pinned OverPy 9.7.10 reference documented in docs/compatibility/upstream-references.md and the category inventory in docs/opy/compatibility-baseline.md.

Concrete evidence includes chaseOverTime, isGameInProgress, getPlayersInRadius, setInvisibility, setStatusEffect, getThrottle, worldVector, receiver/member calls from #104, and the enum work from #105. These are evidence for semantic categories, not requests for symbol-specific special cases.

Scope

  • Define and implement the smallest stable manifest schema needed by the native OPY frontend for:
    • builtin actions and values;
    • member actions and values;
    • receiver categories;
    • ordered parameter signatures and arity;
    • parameter enum domains;
    • enum domains and members;
    • source aliases that do not require advanced call-context semantics.
  • Replace/absorb KNOWN_ENUMS and other duplicated OPY semantic lookup tables where the manifest becomes authoritative.
  • Resolve builtin/member/action/value identity before Workshop emission so unsupported names and invalid contexts fail through the semantic/frontend diagnostic path rather than surfacing accidentally as emitter catalog misses.
  • Link semantic entries to the existing Workshop emission catalog by canonical identity without duplicating localization/output spelling data.
  • Add a deterministic validation/build path for the manifest.
  • Use Wright-authored semantic data validated by systematic probes against the pinned reference. Do not mechanically convert or import OverPy implementation/data files into Wright core.
  • Add generated/table-driven reference tests for uniform metadata plus focused real/corpus fixtures proving end-to-end composition.
  • Cover the evidence-backed generic/member/signature gaps identified by Establish a proactive OPY compatibility baseline from the pinned upstream language surface #106 as part of category-level coverage, not one-off parser branches.
  • Enforce action/value/member context where the reference semantics are clear. In particular, do not preserve a Wright-only acceptance merely because the parser can represent it; cases such as a value member used as a statement must follow the declared OPY compatibility contract.
  • Preserve source provenance and deterministic structured diagnostics.
  • Refresh the OPY support matrix and compatibility baseline to reflect the implemented boundary.

Non-goals

  • Named/keyword argument binding or contextual ChaseReeval semantics; tracked separately after this manifest foundation.
  • Context-sensitive parsing of ambiguous raw Workshop enum spellings; tracked separately.
  • Implementing every legacy alias or historical OverPy quirk.
  • Mechanical GPL data conversion.
  • Runtime-downloadable catalogs, user overlays, content-version negotiation, or any other [v0.2 workshop-rs] Define Workshop catalog, locale, extension, and version boundaries #96 runtime registry work.
  • OSTW implementation.
  • Byte-identical compiler output where observable semantics and declared round-trip contracts already hold.

Acceptance criteria

  • A versioned Wright-owned OPY semantic manifest exists and is the authoritative native-frontend source for the declared builtin/member/signature/enum baseline.
  • The manifest is deterministic, validated, and reference-probed against the pinned OverPy 9.7.10 identity.
  • KNOWN_ENUMS and equivalent duplicated semantic tables are removed or reduced to clearly justified non-overlapping data.
  • Generic evidence-backed calls such as chaseOverTime(...) and isGameInProgress() resolve and compile when their reference-supported signatures are satisfied.
  • Evidence-backed receiver/member calls and enum-gated members resolve through shared metadata rather than symbol-specific parser/emitter exceptions.
  • Invalid arity, wrong action/value position, invalid receiver category, and invalid enum-domain arguments fail deterministically with source-located semantic diagnostics.
  • Unknown action/value/member errors no longer depend on reaching the Workshop emitter merely to discover missing OPY semantic metadata.
  • Existing supported OPY corpus/differential behavior remains green; new systematic reference tests cover the expanded baseline.
  • The implementation does not reopen or implement [v0.2 workshop-rs] Define Workshop catalog, locale, extension, and version boundaries #96.

Relationships

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions