Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions compatibility/compiler-expectations.json
Original file line number Diff line number Diff line change
Expand Up @@ -310,12 +310,12 @@
"evidence": [
"oracle:synthetic/issue-65-invalid-binder/oracle.json",
"provenance:synthetic/issue-65-invalid-binder/fixture.json",
"test:opy-rs::compiler::integration_tests::issue_65_player_variable::invalid_range_binder_has_a_stable_source_diagnostic"
"test:opy-rs::compiler::integration_tests::issue_162_semantic::semantic_boundary_errors_are_reported_before_lowering"
],
"owner": "opy-rs#65",
"note": "The pinned oracle and native source boundary reject a non-variable range binder with source-attributed diagnostics.",
"failureClass": "integration",
"diagnosticCode": "unsupported-integration-surface"
"owner": "opy-rs#162",
"note": "The pinned oracle and native source semantic boundary reject a non-variable range binder with a source-attributed diagnostic before canonical lowering.",
"failureClass": "frontend",
"diagnosticCode": "invalid-range-binder"
},
{
"fixture": "synthetic/issue-113-is-dummy",
Expand Down Expand Up @@ -791,12 +791,12 @@
"evidence": [
"oracle:synthetic/issue-60-4d-negative/oracle.json",
"provenance:synthetic/issue-60-4d-negative/fixture.json",
"test:opy-rs::compiler::integration_tests::issue_145_lowering::four_dimensional_indexed_assignment_is_rejected_at_the_pinned_boundary"
"test:opy-rs::compiler::integration_tests::issue_162_semantic::semantic_boundary_errors_are_reported_before_lowering"
],
"owner": "opy-rs#145",
"note": "The pinned OverPy implementation rejects four-dimensional indexed assignments; native lowering preserves this boundary with a source-attributed integration diagnostic.",
"failureClass": "integration",
"diagnosticCode": "unsupported-integration-surface"
"owner": "opy-rs#162",
"note": "The pinned OverPy implementation rejects four-dimensional indexed assignments; native source semantics now preserves that boundary before canonical lowering.",
"failureClass": "frontend",
"diagnosticCode": "four-dimensional-assignment"
},
{
"fixture": "synthetic/issue-33-f-string",
Expand Down
26 changes: 16 additions & 10 deletions compatibility/conformance-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@
"id": "callable-signatures",
"claim": "Catalog-backed callable signatures accept the documented argument and return shapes.",
"probeKinds": ["positive", "contextual"],
"probes": ["synthetic/chase-condition-agentlab", "synthetic/chase-keywords", "synthetic/receiver-calls"]
"probes": ["synthetic/chase-condition-agentlab", "synthetic/receiver-calls"]
},
{
"id": "receiver-dispatch",
Expand All @@ -229,7 +229,7 @@
"id": "enum-domain-context",
"claim": "Enum and keyword domains are resolved in the semantic context that consumes them.",
"probeKinds": ["positive", "contextual"],
"probes": ["synthetic/chase-enums", "synthetic/chase-keywords", "synthetic/issue-131-spec-visibility"]
"probes": ["synthetic/issue-131-spec-visibility"]
},
{
"id": "aliases-and-hud-surface",
Expand All @@ -239,24 +239,22 @@
},
{
"id": "semantic-boundary-errors",
"claim": "Invalid binders and duplicate declarations stop at a semantic diagnostic frontier.",
"claim": "Invalid binders and source-owned assignment boundaries stop at a semantic diagnostic frontier.",
"probeKinds": ["negative"],
"probes": ["synthetic/issue-65-invalid-binder", "synthetic/issue-29-invalid"]
"probes": ["synthetic/issue-65-invalid-binder", "synthetic/issue-60-4d-negative"]
}
],
"probeFixtures": [
"synthetic/chase-condition-agentlab",
"synthetic/chase-enums",
"synthetic/chase-keywords",
"synthetic/issue-113-is-dummy",
"synthetic/issue-114-hud-subheader",
"synthetic/issue-130-horizontal-facing-angle",
"synthetic/issue-131-spec-visibility",
"synthetic/issue-65-invalid-binder",
"synthetic/issue-60-4d-negative",
"synthetic/issue-65-player-range",
"synthetic/receiver-calls",
"synthetic/receiver-playervar",
"synthetic/issue-29-invalid"
"synthetic/receiver-playervar"
]
},
{
Expand Down Expand Up @@ -292,6 +290,12 @@
"probeKinds": ["positive"],
"probes": ["synthetic/issue-113-is-dummy", "synthetic/issue-114-hud-subheader", "synthetic/issue-130-horizontal-facing-angle", "synthetic/issue-131-spec-visibility"]
},
{
"id": "semantic-to-wir-boundary",
"claim": "Source-semantic callable and enum forms are compared at the canonical-WIR boundary.",
"probeKinds": ["positive", "contextual"],
"probes": ["synthetic/chase-enums", "synthetic/chase-keywords"]
},
{
"id": "settings-lowering",
"claim": "Settings declarations participate in canonical-WIR comparison.",
Expand Down Expand Up @@ -330,6 +334,8 @@
"synthetic/issue-114-hud-subheader",
"synthetic/issue-130-horizontal-facing-angle",
"synthetic/issue-131-spec-visibility",
"synthetic/chase-enums",
"synthetic/chase-keywords",
"synthetic/settings",
"census/workshop-feature-census"
]
Expand All @@ -353,7 +359,7 @@
"id": "parse-frontier",
"claim": "Parser failures identify the first unsupported or malformed syntactic construct.",
"probeKinds": ["negative"],
"probes": ["synthetic/diagnostics", "synthetic/issue-28-invalid-syntax", "synthetic/issue-33-lambda-negative", "synthetic/issue-59-embedded-postfix-negative", "synthetic/issue-59-postfix-negative"]
"probes": ["synthetic/diagnostics", "synthetic/issue-28-invalid-syntax", "synthetic/issue-29-invalid", "synthetic/issue-33-lambda-negative", "synthetic/issue-59-embedded-postfix-negative", "synthetic/issue-59-postfix-negative"]
},
{
"id": "preprocess-frontier",
Expand All @@ -365,7 +371,7 @@
"id": "semantic-frontier",
"claim": "Semantic failures identify the first invalid member, placement, or binder construct.",
"probeKinds": ["negative", "contextual"],
"probes": ["real-world/6v6-adjustments", "synthetic/issue-29-invalid", "synthetic/issue-47-do-while-invalid-placement", "synthetic/issue-65-invalid-binder"]
"probes": ["real-world/6v6-adjustments", "synthetic/issue-47-do-while-invalid-placement", "synthetic/issue-65-invalid-binder"]
},
{
"id": "diagnostic-provenance",
Expand Down
2 changes: 2 additions & 0 deletions compatibility/conformance.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
"script-not-found": "preprocess",
"w_already_imported": "preprocess",
"do-while-placement": "semantic",
"invalid-range-binder": "semantic",
"four-dimensional-assignment": "semantic",
}
FRONTIER_CONSTRUCTS = {
"lambda-context": "parse-error",
Expand Down
4 changes: 2 additions & 2 deletions compatibility/differential-expectations.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,12 @@
{"fixture": "synthetic/issue-46-primitives", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-46-primitives/oracle.json", "implementation-invariant:opy-rs::compiler-primitive-lowering", "test:opy-rs::compiler-issue-46-native-wir-equivalence"], "note": "The pinned oracle records assignment and modification lowering (including **= and single-level indexed forms), value expressions, array indexing (including firstOf index-0 normalization), not-comparison negation, implicit default variables at fixed slots, and non-null variable initializers; #145 additionally covers null-default omission, float-zero initialization, and nested indexed writes. The compiler test compares native lowered WIR directly with the parsed oracle WIR and asserts structural equivalence."},
{"fixture": "synthetic/issue-46-unsupported", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-46-unsupported/oracle.json", "implementation-invariant:opy-rs::compiler-literal-dict-lookup"], "note": "The source implementation and pinned oracle compile literal dict hits and misses; native lowering folds the selected key to its value or Null. Dictionary-indexed assignment targets remain a separate canonical-WIR boundary."},
{"fixture": "synthetic/issue-60-nested-index", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-60-nested-index/oracle.json", "provenance:synthetic/issue-60-nested-index/fixture.json", "test:opy-rs::compiler::integration_tests::issue_145_lowering::nested_indexed_assignments_match_the_pinned_oracle"], "note": "Nested global indexed assignments, including compound modification and three-level replacement, are rebuilt through canonical array slices and match the pinned oracle WIR."},
{"fixture": "synthetic/issue-60-4d-negative", "nativeStatus": "success", "classification": "known-gap", "ruleNames": false, "evidence": ["oracle:synthetic/issue-60-4d-negative/oracle.json", "provenance:synthetic/issue-60-4d-negative/fixture.json", "test:opy-rs::compiler::integration_tests::issue_145_lowering::four_dimensional_indexed_assignment_is_rejected_at_the_pinned_boundary"], "note": "The frontend intentionally resolves the source so the compiler can preserve the pinned four-dimensional assignment rejection; the compiler-level negative contract is checked separately."},
{"fixture": "synthetic/issue-60-4d-negative", "nativeStatus": "failure", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-60-4d-negative/oracle.json", "provenance:synthetic/issue-60-4d-negative/fixture.json", "test:opy-rs::compiler::integration_tests::issue_162_semantic::semantic_boundary_errors_are_reported_before_lowering"], "note": "The pinned OverPy implementation and native source semantics reject four-dimensional indexed assignments at the same semantic failure frontier."},
{"fixture": "synthetic/issue-59-postfix-assignment", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-59-postfix-assignment/oracle.json", "implementation-invariant:opy-rs::compiler-postfix-assignment", "test:opy-rs::compiler-issue-59-postfix-oracle-equivalence"], "note": "The pinned oracle accepts postfix ++/-- assignments on global, player, and single-level indexed variables; native HIR resolves the forms and the compiler matches the canonical WIR."},
{"fixture": "synthetic/issue-59-postfix-negative", "nativeStatus": "failure", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-59-postfix-negative/oracle.json", "implementation-invariant:opy-rs::postfix-assignment-diagnostics"], "note": "The pinned oracle rejects prefix ++; native reports the stable source-attributed parse-error diagnostic, while prefix --x remains valid consecutive unary-minus syntax."},
{"fixture": "synthetic/issue-59-embedded-postfix-negative", "nativeStatus": "failure", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-59-embedded-postfix-negative/oracle.json", "implementation-invariant:opy-rs::postfix-assignment-diagnostics"], "note": "The pinned oracle independently rejects the embedded postfix form; native reports the stable source-attributed parse-error diagnostic."},
{"fixture": "synthetic/issue-65-player-range", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-65-player-range/oracle.json", "provenance:synthetic/issue-65-player-range/fixture.json", "test:opy-rs::compiler::integration_tests::issue_65_player_variable::player_variable_range_binder_matches_the_pinned_oracle"], "note": "The pinned hostPlayer.I range binder lowers to the existing canonical For Player Variable WIR contract and matches the oracle."},
{"fixture": "synthetic/issue-65-invalid-binder", "nativeStatus": "failure", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-65-invalid-binder/oracle.json", "provenance:synthetic/issue-65-invalid-binder/fixture.json", "test:opy-rs::compiler::integration_tests::issue_65_player_variable::invalid_range_binder_has_a_stable_source_diagnostic"], "note": "The pinned oracle and native HIR validation reject a non-variable range binder with source-attributed diagnostics; the compiler test also pins the canonical lowering boundary."},
{"fixture": "synthetic/issue-65-invalid-binder", "nativeStatus": "failure", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/issue-65-invalid-binder/oracle.json", "provenance:synthetic/issue-65-invalid-binder/fixture.json", "test:opy-rs::compiler::integration_tests::issue_162_semantic::semantic_boundary_errors_are_reported_before_lowering"], "note": "The pinned oracle and native source semantics reject a non-variable range binder with a source-attributed diagnostic before canonical lowering."},
{"fixture": "synthetic/issue-113-is-dummy", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/issue-113-is-dummy/oracle.json", "provenance:synthetic/issue-113-is-dummy/fixture.json", "test:opy-rs::compiler::integration_tests::issue_113_is_dummy::is_dummy_member_lowers_to_the_catalog_value_in_canonical_wir"], "note": "The catalog-backed eventPlayer.isDummy() member predicate resolves and lowers to the canonical Workshop value call."},
{"fixture": "synthetic/issue-114-hud-subheader", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/issue-114-hud-subheader/oracle.json", "provenance:synthetic/issue-114-hud-subheader/fixture.json", "test:opy-rs::compiler::integration_tests::issue_114_hud_subheader::hud_subheader_matches_the_pinned_canonical_wir"], "note": "The shared hudSubheader action resolves and lowers to canonical Create HUD Text WIR with its argument and visibility contract."},
{"fixture": "synthetic/issue-131-spec-visibility", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/issue-131-spec-visibility/oracle.json", "provenance:synthetic/issue-131-spec-visibility/fixture.json", "test:opy-rs::compiler::integration_tests::issue_131_spec_visibility::never_maps_to_visible_never_in_canonical_wir"], "note": "The OPY SpecVisibility.NEVER spelling resolves and lowers to the canonical VISIBLE_NEVER enum member."},
Expand Down
4 changes: 2 additions & 2 deletions compatibility/fixtures/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ repository:
| `issue-46-unsupported` | #145 literal dictionary lookup probe retained from #46: the compiler folds literal key hits and misses to the oracle's selected value or `Null`; dictionary-indexed assignment targets remain a separate boundary |
| `issue-59-postfix-assignment` | #59 oracle-backed postfix `++`/`--` assignment probe for global, player, and single-level indexed variables; the snapshot constrains native lowering through canonical WIR equivalence |
| `issue-60-nested-index` | #145 oracle-backed nested indexed-assignment probe for two- and three-level global targets, including compound modification |
| `issue-60-4d-negative` | #145 pinned negative probe preserving OverPy's structured rejection of four-dimensional indexed assignments |
| `issue-60-4d-negative` | #162 pinned negative probe preserving OverPy's structured rejection of four-dimensional indexed assignments at the source semantic boundary |
| `issue-59-postfix-negative` | #59 pinned negative probe for rejected prefix `++` with a stable source-attributed parse diagnostic; prefix `--x` remains valid consecutive unary-minus syntax |
| `issue-59-embedded-postfix-negative` | #59 pinned negative probe for the rejected embedded postfix form with a stable source-attributed parse diagnostic |
| `issue-65-player-range` | #65 pinned oracle-backed player-variable range binder probe for canonical `For Player Variable` lowering |
| `issue-65-invalid-binder` | #65 pinned negative probe for a non-variable range binder with a stable source-attributed diagnostic |
| `issue-65-invalid-binder` | #162 pinned negative probe for a non-variable range binder with a stable source-attributed semantic diagnostic |
| `issue-130-horizontal-facing-angle` | #130 catalog-backed `eventPlayer.getHorizontalFacingAngle()` member-value lowering |
| `issue-131-spec-visibility` | #131 `SpecVisibility.NEVER` to canonical `VISIBLE_NEVER` enum mapping |
| `issue-47-control-flow` | #47 pinned oracle-backed control-flow lowering probe: if/elif/else, while, range-for, do-while expansion, switch fallthrough/default, and direct break |
Expand Down
Loading