You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Regression: AOT str_pad() drops pad string — prints "a" not "a...." (re-#23911, ext/standard/string.c) #26995
str_pad() matches Zend on VM, but AOT returns the input unmodified (padding ignored). Prior AOT segfault (#23911) was closed; current symptom is silent wrong output.
Repro
Zend / VM (2026-08-02, 79a0e27de)
AOT after bin/compile.php
str_pad(\"a\", 5, \".\")
a....
a
Reflection-only sibling: #25045 (not this AOT behavior gap).
Repro on current master (2115b36cad): already green — not the 2026-08-02 a wrong-output.
zend=a....
vm=a....
aot=a....
Also STR_PAD_LEFT / STR_PAD_BOTH / default pad, variable args, PHP_COMPILER_HELPER_RUNTIME_O=0, and --repeat 10 all match. Existing AOT fixtures str_pad.phpt + str_pad_literal_segfault.phpt pass.
Shipping a #26995-tagged guard (exact issue one-liner) and closing via PR — root cause was already addressed by the inline StrPadJitHelper path (#23911 / #23931); this filing was a silent-wrong-output recheck that now holds.
Activity
PurHur commentedon Aug 6, 2026
claim: Lane B implementer (Composer) — starting this run
Mandatory pre-triage (this workspace):
docker info: okphp script/bootstrap-inventory.php --check: OK 7109/7109php script/check-selfhost-spine-coverage-sync.php: FAILED — 5 inventory files missing from spine (ext/imap/VmImapMutf7.php+ 4 imap utf7/mutf7 helpers). Pillar 1 /north-star5-fastred until spine sync../script/release-readiness.sh --json:user_release_ready: no(first related fail:north-star5-fast→ spine coverage sync)gen0_provenance: fresh;vm-driver-probe/gen0-driver-functional: okClaiming #26995 (Lane B,
area:compilerAOT wrong-output — not Reflection stub / not ext-owner lane). Will verify AOTstr_pad("a", 5, ".")→a....with--repeat 10.PurHur commentedon Aug 6, 2026
Repro on current master (
2115b36cad): already green — not the 2026-08-02awrong-output.Also
STR_PAD_LEFT/STR_PAD_BOTH/ default pad, variable args,PHP_COMPILER_HELPER_RUNTIME_O=0, and--repeat 10all match. Existing AOT fixturesstr_pad.phpt+str_pad_literal_segfault.phptpass.Shipping a
#26995-tagged guard (exact issue one-liner) and closing via PR — root cause was already addressed by the inlineStrPadJitHelperpath (#23911 / #23931); this filing was a silent-wrong-output recheck that now holds.PurHur commentedon Aug 6, 2026
Closed — already fixed on master (verified this run on
2115b36cad).Issue repro:
--repeat 10alla....; alsoSTR_PAD_*, variable pad_string, andPHP_COMPILER_HELPER_RUNTIME_O=0.Root path: inline
StrPadJitHelper/__compiler_str_pad(#23911 / #23931). Existing AOT guardstest/fixtures/aot/cases/str_pad.phptandstr_pad_literal_segfault.phptalready cover three-arg padding.Lane B next: claiming #27031 (AOT
http_build_querysegfault — confirmed red).