Category
php-in-php · runtime-shrink (#1492 , re-#20028 / #19186 unlink / #20589 var_export)
Problem
#20028 removed UserScriptAotDeferNestedJit from StringRename but replaced it with isThinStandaloneAotMain() → implementLibcBody / JitRenameKernel libc rename(2) LLVM (~50 LOC fork). Peer builtins already always NestedJIT the PHP helper: StringUnlink (#19186 ), StringVarExport (#20589 ). Thin AOT still bypasses RenameJitHelper warnings/stat-cache invalidation that embed gets.
Path
Today
Target
Embed / non-thin
RenameJitHelper via ensureBridge
unchanged
Thin standalone AOT
JitRenameKernel libc body
RenameJitHelper via ensureBridge
Nested leaf
phpc_rename_kernel / JitRenameKernel
keep (inside helper only)
php-src reference
PHP implementation target
lib/JIT/Builtin/StringRename.php — always JitVmHelperLink::ensureBridge (drop implementLibcBody / isThinStandaloneAotMain / LIBC_ENTRY)
Keep JitRenameKernel + phpc_rename_kernel as NestedJIT leaf inside RenameJitHelper only
test/unit/RenameRuntimeShrinkTest.php — assert Unlink shape (no thin libc fork)
Mark /ext/standard/RenameJitHelper.php runtime_unsafe in emit-helper-runtime-object.php only if HELPER_RUNTIME_O unit.o is red (peer php-in-php: delete JitVarExportKernel — always JitVmHelperLink + VarExportJitHelper PHP (#1492) #20589 )
Repro
./script/docker-exec.sh -- bash -lc ' source script/php-env.sh
vendor/bin/phpunit test/unit/RenameRuntimeShrinkTest.php
vendor/bin/phpunit test/unit/RenameBuiltinTest.php --filter testAotNativeBinaryMatchesPhpSubset
make bootstrap-selfhost-vm-driver-execute-probe
'
Done when
Refs #1492 , #20028 , #19215 , #19186 , #20589 , #10533
Category
php-in-php· runtime-shrink (#1492, re-#20028 / #19186 unlink / #20589 var_export)Problem
#20028removedUserScriptAotDeferNestedJitfromStringRenamebut replaced it withisThinStandaloneAotMain()→implementLibcBody/JitRenameKernellibcrename(2)LLVM (~50 LOC fork). Peer builtins already always NestedJIT the PHP helper:StringUnlink(#19186),StringVarExport(#20589). Thin AOT still bypassesRenameJitHelperwarnings/stat-cache invalidation that embed gets.RenameJitHelperviaensureBridgeJitRenameKernellibc bodyRenameJitHelperviaensureBridgephpc_rename_kernel/JitRenameKernelphp-src reference
php_renamePHP implementation target
lib/JIT/Builtin/StringRename.php— alwaysJitVmHelperLink::ensureBridge(dropimplementLibcBody/isThinStandaloneAotMain/LIBC_ENTRY)JitRenameKernel+phpc_rename_kernelas NestedJIT leaf insideRenameJitHelperonlytest/unit/RenameRuntimeShrinkTest.php— assert Unlink shape (no thin libc fork)/ext/standard/RenameJitHelper.phpruntime_unsafeinemit-helper-runtime-object.phponly if HELPER_RUNTIME_O unit.o is red (peer php-in-php: delete JitVarExportKernel — always JitVmHelperLink + VarExportJitHelper PHP (#1492) #20589)Repro
Done when
implementLibcBody/isThinStandaloneAotMain/rename_libc_entrygone fromStringRename.phpRenameJitHelperviaensureBridgeRenameRuntimeShrinkTest+ AOTRenameBuiltinTestgreenmake bootstrap-selfhost-vm-driver-execute-probegreenRefs #1492, #20028, #19215, #19186, #20589, #10533