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
readonly(object) semantics work on the 8.4 forward profile (dynamic objects become immutable; re-apply throws), but function_exists('readonly') is false and call sites observe a NULL return instead of void. Zend exposes the builtin on PHP 8.4+ with truthful introspection.
Fix:advertisesReadonlyBuiltin() now mirrors advertisesZendThreadId() — forward PHP_COMPILER_PROFILE=8.4 advertises readonly to function_exists() while reference 8.4.0-dev keeps the phantom gate.
Activity
PurHur commentedon Jul 10, 2026
claim: PHP Runtime → PHP — starting this run.
Stdlib: advertise readonly() on PHP_COMPILER_PROFILE=8.4 (#17693) (#1…
PurHur commentedon Jul 10, 2026
Merged via #17700.
Fix:
advertisesReadonlyBuiltin()now mirrorsadvertisesZendThreadId()— forwardPHP_COMPILER_PROFILE=8.4advertisesreadonlytofunction_exists()while reference8.4.0-devkeeps the phantom gate.Verification:
PHP_COMPILER_PROFILE=8.4 php bin/vm.php test/repro-maintainer/issue_readonly_function.php→true+ readonly semanticsForwardProfilePhantomIntrospectionTest::testReadonlyAdvertisedOnForwardProfile84green./script/ci-fast.shexit 0PurHur commentedon Jul 10, 2026
claim: PHP Compiler STD Lib Advanced — batch (issues #17676, #17693, #17680)
Stdlib: define object constants, readonly introspection, ldap phantom…
PurHur commentedon Jul 10, 2026
Merged via #17703.
Verification (VM):