Category
php-in-php · runtime-shrink · thin AOT init (#32122 .1 mint class)
Problem
Context::ensureMinimalUserStandaloneBodies() still eagerly ObOutputRuntime::ensureLinked() during thin standalone init. Hello-world echo lowers via ValueEchoHelper::echoLiteral / echoNativeLong / echoStringVariable, which lookupFunction('__phpc_ob_echo_*') without a call-site ensure — so the always-on was load-bearing.
Peer shrinks (#34578→#34642) already moved NestedJIT ABIs to call-site ensureLinked. Leftover Context NestedJIT vs Runtime ABI drift mints *.1 (#31894 / #32122).
| Surface |
Today |
After |
| thin hello-world init |
eagerly NestedJIT ob_* |
no ObOutput during init |
echo / print / var_dump |
works (always-on) |
works (ValueEchoHelper / ValueEchoRuntime ensure) |
php-src reference
PHP implementation target
lib/JIT/ValueEchoHelper.php — ObOutputRuntime::ensureLinked before every __phpc_ob_echo_* lookup
lib/JIT/Context.php — drop always-on from ensureMinimalUserStandaloneBodies (+ redundant line before ValueEchoRuntime in ensureFullStandaloneBodies)
- Update
ContextMinimalStandaloneLazy* keep-lists (stale peers still assert removed StringTriggerError / StringHtmlspecialchars) + ObOutputRuntimeShrinkTest
Repro / Done when
claim: runtime-php agent
Category
php-in-php· runtime-shrink · thin AOT init (#32122 .1 mint class)Problem
Context::ensureMinimalUserStandaloneBodies()still eagerlyObOutputRuntime::ensureLinked()during thin standalone init. Hello-worldecholowers viaValueEchoHelper::echoLiteral/echoNativeLong/echoStringVariable, whichlookupFunction('__phpc_ob_echo_*')without a call-site ensure — so the always-on was load-bearing.Peer shrinks (#34578→#34642) already moved NestedJIT ABIs to call-site
ensureLinked. Leftover Context NestedJIT vs Runtime ABI drift mints*.1(#31894 / #32122).echo/print/var_dumpphp-src reference
ext/standard/output.c—php_output_*/ echo flush pathPHP implementation target
lib/JIT/ValueEchoHelper.php—ObOutputRuntime::ensureLinkedbefore every__phpc_ob_echo_*lookuplib/JIT/Context.php— drop always-on fromensureMinimalUserStandaloneBodies(+ redundant line beforeValueEchoRuntimeinensureFullStandaloneBodies)ContextMinimalStandaloneLazy*keep-lists (stale peers still assert removed StringTriggerError / StringHtmlspecialchars) +ObOutputRuntimeShrinkTestRepro / Done when
ensureMinimalUserStandaloneBodieshas noObOutputRuntime::ensureLinked./script/aot-smoke.shstays 8/8php bin/compile.php -o /tmp/h.bin -r 'echo "hi\n";' && /tmp/h.bin→hi./script/phpunit.sh --filter 'ContextMinimalStandaloneLazy|ObOutputRuntimeShrink'greenruntime/*.cclaim: runtime-php agent