#7161 made PERRY_GC_MOVING_LOOP_POLLS a compile-time gate (codegen emits or omits js_gc_loop_safepoint calls per moving_safepoint_polls_enabled()), but the flag is not in build_cache.rs's env key list.
Today the per-object cache keys it correctly (verified during #7182's session: new objects with safepoints are emitted on a warm cache when the flag flips), so nothing is currently biting. But the build-level no-op probe is one -o collision away from handing someone the wrong binary for exactly the arm that must not go dark — =1 is now the ONLY configuration that exercises the evacuating minor end-to-end (see the corpus notes landed with #7179's gap test).
This is a regression of the #6394 rule ("the object cache keys ALL codegen env vars" — PR #6526). Fix: add the flag to the build-cache env key list, plus whatever sibling compile-time GC gates #7161/#7166 introduced that are missing (audit, don't just patch the one).
#7161 made
PERRY_GC_MOVING_LOOP_POLLSa compile-time gate (codegen emits or omitsjs_gc_loop_safepointcalls permoving_safepoint_polls_enabled()), but the flag is not inbuild_cache.rs's env key list.Today the per-object cache keys it correctly (verified during #7182's session: new objects with safepoints are emitted on a warm cache when the flag flips), so nothing is currently biting. But the build-level no-op probe is one
-ocollision away from handing someone the wrong binary for exactly the arm that must not go dark —=1is now the ONLY configuration that exercises the evacuating minor end-to-end (see the corpus notes landed with #7179's gap test).This is a regression of the #6394 rule ("the object cache keys ALL codegen env vars" — PR #6526). Fix: add the flag to the build-cache env key list, plus whatever sibling compile-time GC gates #7161/#7166 introduced that are missing (
audit, don't just patch the one).