cargo-test is a required check and it is failing on main's current HEAD 83a6767ff ("GC memory: shape-key typed layouts (#6893) + major-GC pacing; don't link CoreFoundation in every binary (#6939)"). 33 perry-runtime lib tests fail — 32 in typed_feedback::tests plus proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof.
It came in with #6939, which merged red
PR #6939's own cargo-test run failed with exactly this set — 33/33 identical after sorting both lists. It was merged anyway. (Its lint was red too; that side is #6956.)
Reproduced on an unrelated PR that changes zero .rs files (#6954: shell script, TS test file, two text manifests, a workflow edit, docs). git diff origin/main...HEAD -- '*.rs' Cargo.toml Cargo.lock is empty there, so the failures are wholly inherited from main:
test result: FAILED. 1456 passed; 33 failed; 3 ignored; 0 measured; 0 filtered out
Sample assertions:
---- proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof ----
panicked at crates/perry-runtime/src/proxy.rs:2052:9:
assertion `left == right` failed: finite numbers are valid in verified ordinary JSValue typed slots
---- typed_feedback::tests::typed_feedback_class_field_get_guard_requires_raw_f64_layout_when_requested ----
panicked at crates/perry-runtime/src/typed_feedback/tests.rs:1660:5:
assertion `left == right` failed
Full list (sorted): proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof, and typed_feedback::tests:: — typed_feedback_class_field_get_guard_requires_raw_f64_layout_when_requested, typed_feedback_class_field_set_guard_fails_for_frozen_object, typed_feedback_class_field_set_guard_falls_back_for_class_setter, typed_feedback_class_field_set_guard_requires_raw_f64_value_and_layout, typed_feedback_closure_direct_guard_passes_and_rejects_bound_sentinel, typed_feedback_helper_return_guard_failure_returns_original_value, typed_feedback_helper_return_keys_use_shape_facts_not_sample_identity, typed_feedback_invalidation_counters_are_site_attributed, typed_feedback_method_direct_guard_fails_after_megamorphic_site, typed_feedback_method_direct_guard_fails_for_native_receiver, typed_feedback_method_direct_guard_fails_for_own_method_replacement, typed_feedback_method_direct_guard_fails_for_prototype_method_registration, typed_feedback_method_direct_guard_passes_for_exact_registered_method, typed_feedback_non_bounded_array_set_guard_failure_uses_jsvalue_object_fallback, typed_feedback_numeric_array_get_guard_requires_numeric_layout, typed_feedback_numeric_array_guards_reject_registered_class_ref_bits, typed_feedback_numeric_array_push_guard_rejects_mutability_restricted_arrays, typed_feedback_numeric_array_push_guard_requires_room_numeric_value_and_layout, typed_feedback_numeric_array_set_guard_requires_numeric_value_and_layout, typed_feedback_object_set_fast_falls_back_for_uncached_dynamic_key, typed_feedback_object_set_fast_hits_learned_dynamic_key_transition, typed_feedback_packed_i32_loop_guard_rejects_fractional_numeric_layout, typed_feedback_packed_u32_loop_guard_rejects_signed_fractional_and_overflow_layouts, typed_feedback_property_and_method_keys_ignore_receiver_identity, typed_feedback_registers_source_attribution, typed_feedback_roots_rewrite_shape_observations, typed_feedback_state_transitions_to_megamorphic, typed_feedback_trace_dump_honors_env_paths, typed_feedback_trace_json_includes_observed_kinds, typed_feedback_trace_json_reports_counts, typed_feedback_tracks_all_site_categories, typed_feedback_unboxed_numeric_write_falls_back_for_string_values.
Why it will keep hurting
Any PR whose ci_test_scope.py scope includes perry-runtime — which includes PRs that only add a test-files/*.ts gap test — now goes red for reasons unrelated to its diff. Combined with #6956 (lint red on the same commit) that is two of the required checks broken repo-wide.
The failing invocation is the scoped per-PR one, RUST_TEST_THREADS=1 cargo test --lib -p perry-runtime. Worth checking whether the full-workspace invocation (cargo test -p perry-runtime, all targets) still passes: if it does, feature unification across targets is masking these, and the nightly full run structurally cannot see the failure — which is how it would stay broken.
Given 83a6767ff reworked typed-shape/shape-key GC layouts and typed_feedback guards read layout bits, the guard tests asserting on raw_f64 / numeric layout are the plausible blast radius rather than a test-harness artifact.
Related: #6956 (lint red on the same commit), #6893, #6939.
cargo-testis a required check and it is failing onmain's current HEAD83a6767ff("GC memory: shape-key typed layouts (#6893) + major-GC pacing; don't link CoreFoundation in every binary (#6939)"). 33perry-runtimelib tests fail — 32 intyped_feedback::testsplusproxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof.It came in with #6939, which merged red
PR #6939's own
cargo-testrun failed with exactly this set — 33/33 identical after sorting both lists. It was merged anyway. (Itslintwas red too; that side is #6956.)Reproduced on an unrelated PR that changes zero
.rsfiles (#6954: shell script, TS test file, two text manifests, a workflow edit, docs).git diff origin/main...HEAD -- '*.rs' Cargo.toml Cargo.lockis empty there, so the failures are wholly inherited frommain:Sample assertions:
Full list (sorted):
proxy::tests::object_array_numeric_write_guard_requires_complete_uniform_proof, andtyped_feedback::tests::—typed_feedback_class_field_get_guard_requires_raw_f64_layout_when_requested,typed_feedback_class_field_set_guard_fails_for_frozen_object,typed_feedback_class_field_set_guard_falls_back_for_class_setter,typed_feedback_class_field_set_guard_requires_raw_f64_value_and_layout,typed_feedback_closure_direct_guard_passes_and_rejects_bound_sentinel,typed_feedback_helper_return_guard_failure_returns_original_value,typed_feedback_helper_return_keys_use_shape_facts_not_sample_identity,typed_feedback_invalidation_counters_are_site_attributed,typed_feedback_method_direct_guard_fails_after_megamorphic_site,typed_feedback_method_direct_guard_fails_for_native_receiver,typed_feedback_method_direct_guard_fails_for_own_method_replacement,typed_feedback_method_direct_guard_fails_for_prototype_method_registration,typed_feedback_method_direct_guard_passes_for_exact_registered_method,typed_feedback_non_bounded_array_set_guard_failure_uses_jsvalue_object_fallback,typed_feedback_numeric_array_get_guard_requires_numeric_layout,typed_feedback_numeric_array_guards_reject_registered_class_ref_bits,typed_feedback_numeric_array_push_guard_rejects_mutability_restricted_arrays,typed_feedback_numeric_array_push_guard_requires_room_numeric_value_and_layout,typed_feedback_numeric_array_set_guard_requires_numeric_value_and_layout,typed_feedback_object_set_fast_falls_back_for_uncached_dynamic_key,typed_feedback_object_set_fast_hits_learned_dynamic_key_transition,typed_feedback_packed_i32_loop_guard_rejects_fractional_numeric_layout,typed_feedback_packed_u32_loop_guard_rejects_signed_fractional_and_overflow_layouts,typed_feedback_property_and_method_keys_ignore_receiver_identity,typed_feedback_registers_source_attribution,typed_feedback_roots_rewrite_shape_observations,typed_feedback_state_transitions_to_megamorphic,typed_feedback_trace_dump_honors_env_paths,typed_feedback_trace_json_includes_observed_kinds,typed_feedback_trace_json_reports_counts,typed_feedback_tracks_all_site_categories,typed_feedback_unboxed_numeric_write_falls_back_for_string_values.Why it will keep hurting
Any PR whose
ci_test_scope.pyscope includesperry-runtime— which includes PRs that only add atest-files/*.tsgap test — now goes red for reasons unrelated to its diff. Combined with #6956 (lintred on the same commit) that is two of the required checks broken repo-wide.The failing invocation is the scoped per-PR one,
RUST_TEST_THREADS=1 cargo test --lib -p perry-runtime. Worth checking whether the full-workspace invocation (cargo test -p perry-runtime, all targets) still passes: if it does, feature unification across targets is masking these, and the nightly full run structurally cannot see the failure — which is how it would stay broken.Given
83a6767ffreworked typed-shape/shape-keyGC layouts andtyped_feedbackguards read layout bits, the guard tests asserting onraw_f64/ numeric layout are the plausible blast radius rather than a test-harness artifact.Related: #6956 (lint red on the same commit), #6893, #6939.