Category
php-in-php · runtime-shrink (#1492, peer #32855 / re-#32122)
Problem
Builtin\Type::register() still addFunctions empty always-on shells for __compiler_strtr and __compiler_strtr_array on every JIT/AOT module. StringStrtr already owns these ABIs module-locally via getNamedFunction first + addFunction when absent, but leftover Type empty decls can mint strtr.1 / strtr_array.1 when Runtime ABI drift lands (#31894 / #32122 class).
Peer #32855 removed password crypto shells and left __compiler_strtr* as the next always-on cluster (asserted in TypeDeadPasswordCryptoAbiRuntimeShrinkTest).
php-src reference
PHP implementation target
lib/JIT/Builtin/StringStrtr.php — already declares ABIs module-locally; keep getNamedFunction first
lib/JIT/Builtin/Type.php — remove always-on __compiler_strtr / __compiler_strtr_array rows; StringStrtr::ensureLinked from Type::initialize
- Keep
StrtrTwoStringJitHelper / StrtrArrayJitHelper / user-script strtr() path
- unit shrink test peer
TypeDeadPasswordCryptoAbiRuntimeShrinkTest
Done when
Parent
Category
php-in-php· runtime-shrink (#1492, peer #32855 / re-#32122)Problem
Builtin\Type::register()stilladdFunctions empty always-on shells for__compiler_strtrand__compiler_strtr_arrayon every JIT/AOT module.StringStrtralready owns these ABIs module-locally viagetNamedFunctionfirst +addFunctionwhen absent, but leftover Type empty decls can mintstrtr.1/strtr_array.1when Runtime ABI drift lands (#31894 / #32122 class).Peer #32855 removed password crypto shells and left
__compiler_strtr*as the next always-on cluster (asserted inTypeDeadPasswordCryptoAbiRuntimeShrinkTest).php-src reference
ext/standard/string.c—PHP_FUNCTION(strtr)PHP implementation target
lib/JIT/Builtin/StringStrtr.php— already declares ABIs module-locally; keepgetNamedFunctionfirstlib/JIT/Builtin/Type.php— remove always-on__compiler_strtr/__compiler_strtr_arrayrows;StringStrtr::ensureLinkedfromType::initializeStrtrTwoStringJitHelper/StrtrArrayJitHelper/ user-scriptstrtr()pathTypeDeadPasswordCryptoAbiRuntimeShrinkTestDone when
Type.phpdoes not always-declare the two strtr ABIsStringStrtrowns the ABIs module-locally;Type::initializeensureLinks it./script/aot-smoke.shstays 8/8runtime/*.cParent