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
Leftover Context NestedJIT vs Runtime ABI drift mints *.1 (#31894 / #32122). Call sites already ensureLinked before lookup; AssertFail::ensureLinked must implement bodies for standalone (today it only declares empty ABI — peer AssertOptions).
lib/JIT/Builtin/JitReturnPending.php — ensureLinked registers decls before implement
lib/JIT/Context.php — drop the always-on ensureStandaloneBodies calls from ensureFullStandaloneBodies; compileToFile ensureLinked before clear-return-pending
Guard unit test peer ContextFullStandaloneLazyJsonOffsetShrinkTest
Update minimal-path tests that still require full to keep these
Category
php-in-php· runtime-shrink · Pillar Trust (#32122.1mint class)Problem
Context::ensureFullStandaloneBodiesstill eagerly NestedJITs assert / GC / progress / trigger_error / return-pending / last-error ABIs during every full standalone init — peers already made these lazy on the minimal path (#34605 / #34621 / #34631 / #34641 / AssertOptions #34463):StringTriggerError(called twice) +AssertFail+AssertOptionsRuntimeJitReturnPendingLastErrorRuntime/ProgressNoteRuntime/GcToggleRuntime/GcCollectCyclesRuntimeLeftover Context NestedJIT vs Runtime ABI drift mints
*.1(#31894 / #32122). Call sites alreadyensureLinkedbefore lookup;AssertFail::ensureLinkedmust implement bodies for standalone (today it only declares empty ABI — peer AssertOptions).php-src reference
ext/standard/assert.c—assert/assert_optionsZend/zend_gc.c— GC enable/collectext/standard/basic_functions.c—error_get_last/trigger_errorPHP implementation target
lib/JIT/Builtin/AssertFail.php—ensureLinkedalways implements bodies +StringTriggerError::ensureLinked(php-in-php: drop leftover Type always-on __compiler_trigger_error ABI shell (Zend/zend_execute_API.c) #33234); restore insert blocklib/JIT/Builtin/JitReturnPending.php—ensureLinkedregisters decls before implementlib/JIT/Context.php— drop the always-onensureStandaloneBodiescalls fromensureFullStandaloneBodies;compileToFileensureLinked before clear-return-pendingContextFullStandaloneLazyJsonOffsetShrinkTestruntime/*.cRepro / verify
Done when
ensureFullStandaloneBodiesno longer eagerly NestedJITs TriggerError / AssertFail / AssertOptions / ReturnPending / LastError / ProgressNote / Gc*AssertFail::ensureLinkedimplements standalone bodies (call-site safe)./script/aot-smoke.shstays 8/8lib/AOT/runtime/*.cParent