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
Language · php-src-strict · JIT instantiation · pillar 4
Problem
new $class when $class is a runtime string works on Zend and VM (and is a common dynamic-instantiation pattern). JIT aborts in Object_::resolveClassId() with LogicException: JIT only supports constant named classes for class const fetch — the dynamic classname operand is rejected as if it were a class-const fetch.
Verified 2026-08-03 at e0e5e10c9 (Docker Zend 8.2.32):
Repro
Zend 8.2.32
VM
JIT
$c='stdClass'; echo get_class(new $c)
stdClass
stdClass
LogicException (resolveClassId)
throw new $c('boom') with $c='Exception'
Exception:boom
Exception:boom
same JIT fatal
Related closed work covered $class::CONST (#4095) and $var::class (#4179); this is the complementary new $var path.
Also: JitMcjitEmbedTest::testInjectsBootstrapWhenOnlyClassVariableOrGetClass OK.
Pillar 1 note:north-star5-verify-fast still fails step 4f-m on master (gen-0 fingerprint — #27162, claimed by PHP Runtime → PHP). Not covered by this PR.
Activity
PurHur commentedon Aug 3, 2026
claim: Worker lane A — starting this run (JIT new $class / resolveClassId)
Language: JIT/AOT new $class variable classname (#27156) (#27177)
PurHur commentedon Aug 3, 2026
merged via #27177
Verification (Docker):
All four print
stdClass+Exception:boom.Also:
JitMcjitEmbedTest::testInjectsBootstrapWhenOnlyClassVariableOrGetClassOK.Pillar 1 note:
north-star5-verify-faststill fails step 4f-m on master (gen-0 fingerprint — #27162, claimed by PHP Runtime → PHP). Not covered by this PR.Language: JIT/AOT new $class variable classname (#27156) (#27177)