Skip to content

Trust: refresh helper-runtime prelink — 3 STALE units after round/RoundingMode (re-#28127) #28554

Description

@PurHur

Category

trust · Pillar 1 / helper-runtime (#10533 via #78, re-#28127 / #27732 / #24302)

Problem

Committed prelinked/helper-runtime/x86_64-linux/ is stale for 3 units after today's round() / RoundingMode landings. check-helper-runtime-prelink.php --strict fails and ./script/release-readiness.sh --json reports user_release_ready: no.

Measured on master @ 02de877a7 (2026-08-07):

corpus 359 fresh / 3 stale / 0 broken
STALE ext/standard/FloorJitHelper.php
STALE ext/standard/RoundJitHelper.php
STALE ext/standard/SortJitHelper.php

Likely tip commits: #28546 (round() negative RoundingMode modes → RoundJitHelper.php), #28545 (RoundingMode unit enum / phantom PHP_ROUND_* drop). Floor/Sort share fingerprint deps with that stdlib surface — rebuild all three honestly.

Cold-build still green (3s) and north-star5-verify --fast green — Pillar 1 remains red until the corpus is honestly rebuilt (no restamp-only).

gen0_provenance also stale (driver c69fc7f4a, 9 lowering commits; north-star5-fast still green) — refresh after this corpus rebuild if 4f-m regresses; not the first failing gate today.

Prior cycle: #28127 (ArrayFill / Getrusage / JsonEncodeNested) closed 2026-08-06; tip recovered to user_release_ready: yes mid-day 2026-08-07, then regressed on this round/RoundingMode batch.

Repro

docker info >/dev/null
./script/docker-exec.sh -- bash -lc 'php script/check-helper-runtime-prelink.php --strict'
# → STALE FloorJitHelper + RoundJitHelper + SortJitHelper (359 fresh / 3 stale)
./script/docker-exec.sh -- bash -lc './script/release-readiness.sh --json'
# → user_release_ready: no ; first fail helper-runtime-prelink

Fix

Rebuild and publish the committed corpus (do not restamp fingerprints):

./script/docker-exec.sh -- bash -lc 'php script/emit-helper-runtime-object.php --unit=/ext/standard/FloorJitHelper.php'
./script/docker-exec.sh -- bash -lc 'php script/emit-helper-runtime-object.php --unit=/ext/standard/RoundJitHelper.php'
./script/docker-exec.sh -- bash -lc 'php script/emit-helper-runtime-object.php --unit=/ext/standard/SortJitHelper.php'
# or: make helper-runtime-prelink-refresh  (publishes into prelinked/<arch>/)
./script/docker-exec.sh -- bash -lc 'php script/check-helper-runtime-prelink.php --strict'
./script/docker-exec.sh -- bash -lc './script/release-readiness.sh --json'
# expect user_release_ready: yes

Done when

  • php script/check-helper-runtime-prelink.php --strict → 0 stale / 0 broken on x86_64-linux
  • ./script/release-readiness.sh --jsonuser_release_ready: yes (quick)
  • Committed unit.o + manifest.json for the 3 units match rebuilt fingerprints (honest emit, no restamp)
  • Optional follow-up: honest gen-0 argv refresh if provenance still shows tip lowering drift after this land

PHP implementation target

  • prelinked/helper-runtime/x86_64-linux/units/ext_standard_{Floor,Round,Sort}JitHelper_php/ — rebuild via emit-helper-runtime-object.php / make helper-runtime-prelink-refresh
  • Source already landed in ext/standard/RoundJitHelper.php (+ RoundingMode enum path); this ticket is Trust corpus freshness only

Metadata

Metadata

Assignees

No one assigned

    Labels

    IMPORTANTCritical patharea:toolingTooling / CI / docsbugSomething isn't workingimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-0:FoundationPhase 0 – foundation & DevExreleaseUser-facing release trackingrelease-blockerBlocks tagged user release

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions