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
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ opy-rs = { path = "crates/opy-rs", version = "0.1.19" }
libquickjs-ng-sys = "0.13.0"
serde = "1"
serde_json = "1"
workshop-rs = "=0.1.18"
workshop-rs = "=0.1.19"

[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
Expand Down
2 changes: 1 addition & 1 deletion crates/opy-cli/tests/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ fn compile_json_reports_success_identity_and_normalized_output() {
+ "\n"
);
assert_eq!(json["compiler"]["name"], "opy-rs");
assert_eq!(json["catalog"]["implementation-version"], "0.1.18");
assert_eq!(json["catalog"]["implementation-version"], "0.1.19");
assert!(json.get("compatibility").is_none());
}

Expand Down
6 changes: 3 additions & 3 deletions crates/opy-rs/src/compiler/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! OPY-to-Workshop integration, kept behind the `opy-rs` library boundary.
//!
//! This module pins the released `workshop-rs` v0.1.18 contract, checks the OPY
//! This module pins the released `workshop-rs` v0.1.19 contract, checks the OPY
//! manifest links against the canonical catalog, and lowers the supported OPY
//! program structure into canonical WIR before validation and deterministic
//! Workshop emission.
Expand All @@ -20,7 +20,7 @@ pub mod reconstruct;
mod integration_tests;

/// The exact released dependency contract consumed by this crate.
pub const WORKSHOP_RS_VERSION: &str = "0.1.18";
pub const WORKSHOP_RS_VERSION: &str = "0.1.19";

const TRANSLATION_HELPER_NAME: &str = "__overpyTranslationHelper__";

Expand Down Expand Up @@ -6950,7 +6950,7 @@ mod tests {
assert_eq!(rule.span.unwrap().file.index(), 0);
assert_eq!(rule.name_span.unwrap().start.line, 2);
assert!(artifact.emitted.contains("Disable Inspector Recording;"));
assert_eq!(artifact.catalog_identity.implementation_version, "0.1.18");
assert_eq!(artifact.catalog_identity.implementation_version, "0.1.19");
}

#[test]
Expand Down
2 changes: 1 addition & 1 deletion crates/opy-rs/tests/differential-expectations.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
{"fixture": "synthetic/hud-subheader", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/hud-subheader/oracle.json", "provenance:synthetic/hud-subheader/fixture.json", "test:opy-rs::compiler::integration_tests::hud::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/hud-visibility", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/hud-visibility/oracle.json", "provenance:synthetic/hud-visibility/fixture.json", "test:opy-rs::compiler::integration_tests::hud_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."},
{"fixture": "synthetic/control-flow-lowering", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/control-flow-lowering/oracle.json", "implementation-invariant:control-flow-lowering-hir"], "note": "The #47 control-flow slice resolves in the source implementation and its native lowered WIR is directly equivalent to the pinned oracle."},
{"fixture": "synthetic/switch-break-unsupported", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/switch-break-unsupported/oracle.json", "test:opy-rs::compiler-nested-switch-break-diagnostic"], "note": "Negative #47 probe: the source implementation and pinned oracle accept the nested conditional switch-break HIR, while the compiler rejects the form because OPY has no lossless lowering to the canonical workshop-rs v0.1.18 control-flow contract."},
{"fixture": "synthetic/switch-break-unsupported", "nativeStatus": "success", "classification": "match", "ruleNames": false, "evidence": ["oracle:synthetic/switch-break-unsupported/oracle.json", "test:opy-rs::compiler-nested-switch-break-diagnostic"], "note": "Negative #47 probe: the source implementation and pinned oracle accept the nested conditional switch-break HIR, while the compiler rejects the form because OPY has no lossless lowering to the canonical workshop-rs v0.1.19 control-flow contract."},
{"fixture": "synthetic/switch-order", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/switch-order/oracle.json", "implementation-invariant:authored-switch-order"], "note": "The #47 default-before-case probe preserves authored arm order and fallthrough in the source implementation, and the native lowered WIR is directly equivalent to the pinned oracle."},
{"fixture": "synthetic/switch-structured-target", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/switch-structured-target/oracle.json", "implementation-invariant:structured-switch-source-order"], "note": "The #47 structured switch probe preserves nested if/while actions and authored case/default target order in the source implementation, and the native lowered WIR is directly equivalent to the pinned oracle."},
{"fixture": "synthetic/switch-multiple-break", "nativeStatus": "success", "classification": "match", "ruleNames": true, "evidence": ["oracle:synthetic/switch-multiple-break/oracle.json", "test:opy-rs::compiler::integration_tests::control_flow::multiple_switch_breaks_match_independent_semantic_oracle", "test:opy-rs::compiler::integration_tests::control_flow::pinned_overpy_switch_action_trace"], "note": "The source implementation preserves the multi-break source; the compiler lowers its direct case-local breaks through canonical Workshop control flow, and the pinned OverPy action trace independently checks case selection, break, default, and fallthrough behavior."},
Expand Down
2 changes: 1 addition & 1 deletion docs/opy/compatibility-baseline.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ For each category the following dimensions are distinguished:
(names, members, enums, call semantics);
* **Compilation**: standalone compile/emission through the `workshop-rs`
backend succeeds with reference-equivalent semantics. The bounded #35
vertical slice is now evidenced through workshop-rs v0.1.18; the remaining
vertical slice is now evidenced through workshop-rs v0.1.19; the remaining
surface is **lowering-dependent** and stays inventory-only until later #8
work;
* **Tooling/analysis**: `check`/`analyze`/`lint`/`inspect` and language
Expand Down
6 changes: 3 additions & 3 deletions tools/overpy/compiler-expectations.json
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@
"test:opy-rs::compiler::integration_tests::control_flow::nested_switch_break_is_source_attributed_when_not_representable"
],
"owner": "workshop-rs#123",
"note": "The released workshop-rs v0.1.18 contract provides native Break, Skip, and Skip If calls, but this nested conditional switch-break shape still has no lossless OPY-owned lowering and remains explicitly rejected.",
"note": "The released workshop-rs v0.1.19 contract provides native Break, Skip, and Skip If calls, but this nested conditional switch-break shape still has no lossless OPY-owned lowering and remains explicitly rejected.",
"failureClass": "integration",
"diagnosticCode": "unsupported-integration-surface"
},
Expand Down Expand Up @@ -454,7 +454,7 @@
"provenance:real-world/overpy-cake/fixture.json"
],
"owner": "workshop-rs#124",
"note": "The released workshop-rs v0.1.18 catalog resolves `Visible To` through the canonical call-signature domain, so the native WIR can be compared directly with the pinned oracle; remaining arithmetic and implicit-value lowering differences keep this real-world case an explicit compiler gap.",
"note": "The released workshop-rs v0.1.19 catalog resolves `Visible To` through the canonical call-signature domain, so the native WIR can be compared directly with the pinned oracle; remaining arithmetic and implicit-value lowering differences keep this real-world case an explicit compiler gap.",
"semanticEquivalent": false
},
{
Expand Down Expand Up @@ -600,7 +600,7 @@
"provenance:synthetic/chase-condition-agentlab/fixture.json"
],
"owner": "workshop-rs#124",
"note": "The released workshop-rs v0.1.18 catalog resolves `None` through the canonical call-signature domain, so the native WIR can be compared directly with the pinned oracle.",
"note": "The released workshop-rs v0.1.19 catalog resolves `None` through the canonical call-signature domain, so the native WIR can be compared directly with the pinned oracle.",
"semanticEquivalent": true
},
{
Expand Down