Category
php-in-php · runtime-shrink (#1492, peer #32875 / #32869; trust class #32122)
Problem
Builtin\Type::register() still addFunctions empty always-on shells for __compiler_utf8_encode and __compiler_utf8_decode on every JIT/AOT module. StringUtf8Latin1 already owns those ABIs (getNamedFunction first + NestedJIT bridge), but leftover Type empty decls can mint utf8_encode.1 when Runtime ABI drift lands (#31894 / #32122 class).
php-src reference
PHP implementation target
lib/JIT/Builtin/Type.php — remove always-on utf8_encode/utf8_decode rows; Type::initialize ensureLinkeds StringUtf8Latin1
- Keep
StringUtf8Latin1 / Utf8Latin1JitHelper; no new runtime/*.c
- Leave
convert_uuencode Type rows alone (sentinel for peer shrink tests)
Repro
grep -n "__compiler_utf8_encode\|__compiler_utf8_decode" lib/JIT/Builtin/Type.php
Done when
Parent
Category
php-in-php· runtime-shrink (#1492, peer #32875 / #32869; trust class #32122)Problem
Builtin\Type::register()stilladdFunctions empty always-on shells for__compiler_utf8_encodeand__compiler_utf8_decodeon every JIT/AOT module.StringUtf8Latin1already owns those ABIs (getNamedFunctionfirst + NestedJIT bridge), but leftover Type empty decls can mintutf8_encode.1when Runtime ABI drift lands (#31894 / #32122 class).php-src reference
ext/standard/utf8.c—php_utf8_encode/php_utf8_decodePHP implementation target
lib/JIT/Builtin/Type.php— remove always-on utf8_encode/utf8_decode rows;Type::initializeensureLinkedsStringUtf8Latin1StringUtf8Latin1/Utf8Latin1JitHelper; no newruntime/*.cconvert_uuencodeType rows alone (sentinel for peer shrink tests)Repro
grep -n "__compiler_utf8_encode\|__compiler_utf8_decode" lib/JIT/Builtin/Type.phpDone when
./script/aot-smoke.shstays 8/8utf8_encode/utf8_decodestill match Zend (ignoring deprecation)Parent