Skip to content

release blocker: source-graph IR assertions reject intentional trusted-box and pshape lowering #9164

Description

@proggeramlug

Release context

Full CI run 33308645055 for release/v0.5.1519 failed only cargo-test-perry shard 2/8 (job 99249612219) in crates/perry/tests/source_graph_export_regressions.rs. The remaining 14 tests in that binary passed.

Failure 1

cross_module_arrow_callback_dispatch_is_resolved_once_and_fails_closed

Runtime output is correct: 1584, 32, 42. The test still requires js_box_set_bits_trusted_no_barrier anywhere in the combined IR. Since #8705, the bounded private trusted-box body deliberately inlines the normal capture load/store and retains only js_box_get_bits_trusted for the cold TDZ/suppression fallback. The focused trusted_box_callback_tests already pin this contract and explicitly reject the old setter helper.

Adjust the source-graph test to inspect the private trusted_boxes body itself and require the direct capture load/store, TDZ fallback, write barrier, and absence of generic box access. Keep the forced-evacuation runtime assertion.

Failure 2

imported_class_return_types_pull_in_transitive_dispatch_metadata

Runtime output is correct: 99 42 43 44 45 47 48 45. The transitive valuePing calls now target the guarded exported valuePing$pshape capability; the assertion only accepts the older public valuePing symbol. Accept either sound direct route while retaining the runtime override/fallback coverage. Existing proven_this_routing_tests pin that every pshape call is dominated by the shape/class guard.

Acceptance criteria

  • Both failing tests pass on Linux with the release commit.
  • The full source_graph_export_regressions test binary passes, including forced evacuation.
  • Focused trusted-box codegen tests remain green.
  • No compiler/runtime semantic change is made unless inspection contradicts the evidence above.

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

    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