Category
php-in-php · runtime-shrink (#1492, peer #32665 / #32721 / re-#32122)
Problem
Builtin\Type::register() still ensureExternalFunctions empty always-on shells for __compiler_env_local_lookup and __compiler_env_register_putenv on every JIT/AOT module. Runtime owner already declares module-locally via JitEnvLocalKernel (getNamedFunction first) and Type::register() already calls EnvLocalRuntime::ensureLinked():
EnvLocalRuntime / JitEnvLocalKernel — env overlay lookup + putenv register
Leftover Type empty decls vs Runtime ABI drift mints name.1 (#31894 / #32122 class). These two are the last forever-on Type $libcFns-era table after #32202/#32665.
php-src reference
PHP implementation target
lib/JIT/Builtin/Type.php — remove always-on __compiler_env_local_* rows + dead ensureExternalFunction
ext/standard/JitEnvLocalKernel.php — keep ABI ownership (getNamedFunction first)
- unit shrink test peer
TypeDeadGetenvAbiRuntimeShrinkTest
Done when
Category
php-in-php· runtime-shrink (#1492, peer #32665 / #32721 / re-#32122)Problem
Builtin\Type::register()stillensureExternalFunctions empty always-on shells for__compiler_env_local_lookupand__compiler_env_register_putenvon every JIT/AOT module. Runtime owner already declares module-locally viaJitEnvLocalKernel(getNamedFunction first) andType::register()already callsEnvLocalRuntime::ensureLinked():EnvLocalRuntime/JitEnvLocalKernel— env overlay lookup + putenv registerLeftover Type empty decls vs Runtime ABI drift mints
name.1(#31894 / #32122 class). These two are the last forever-on Type$libcFns-era table after #32202/#32665.php-src reference
ext/standard/basic_functions.c—zif_getenv/zif_putenvPHP implementation target
lib/JIT/Builtin/Type.php— remove always-on__compiler_env_local_*rows + deadensureExternalFunctionext/standard/JitEnvLocalKernel.php— keep ABI ownership (getNamedFunction first)TypeDeadGetenvAbiRuntimeShrinkTestDone when
Type.phpdoes not always-declare the two ABI namesJitEnvLocalKernelstill owns the ABIaot-smoke.shstays 8/8runtime/*.c