Category
php-in-php · runtime-shrink (#1492, peer #32866 / re-#32122)
Problem
Builtin\Type::register() still addFunctions an empty always-on shell for __compiler_openssl_digest on every JIT/AOT module. OpensslDigestRuntime already owns the ABI via NestedJIT bridge, but implementIfMissing still lookupFunctions the Type-declared empty decl — leftover Type shells can mint openssl_digest.1 when Runtime ABI drift lands (#31894 / #32122 class).
Peer #32866 removed openssl_sign/verify Type shells with the same declareAbi / getNamedFunction-first shape.
php-src reference
PHP implementation target
lib/JIT/Builtin/OpensslDigestRuntime.php — declare ABI module-locally (getNamedFunction first + addFunction when absent); stop depending on Type empty decls via lookupFunction
lib/JIT/Builtin/Type.php — remove always-on openssl_digest row; keep OpensslDigestRuntime::ensureLinked from Type::initialize
- Keep
OpensslDigestJitHelper / user-script builtins; no new runtime/*.c
Repro
# Guard: Type must not registerFunction('__compiler_openssl_digest'
grep -n "openssl_digest" lib/JIT/Builtin/Type.php
Done when
Parent
Category
php-in-php· runtime-shrink (#1492, peer #32866 / re-#32122)Problem
Builtin\Type::register()stilladdFunctions an empty always-on shell for__compiler_openssl_digeston every JIT/AOT module.OpensslDigestRuntimealready owns the ABI via NestedJIT bridge, butimplementIfMissingstilllookupFunctions the Type-declared empty decl — leftover Type shells can mintopenssl_digest.1when Runtime ABI drift lands (#31894 / #32122 class).Peer #32866 removed openssl_sign/verify Type shells with the same
declareAbi/ getNamedFunction-first shape.php-src reference
ext/openssl/openssl.c—PHP_FUNCTION(openssl_digest)PHP implementation target
lib/JIT/Builtin/OpensslDigestRuntime.php— declare ABI module-locally (getNamedFunctionfirst +addFunctionwhen absent); stop depending on Type empty decls vialookupFunctionlib/JIT/Builtin/Type.php— remove always-on openssl_digest row; keepOpensslDigestRuntime::ensureLinkedfromType::initializeOpensslDigestJitHelper/ user-script builtins; no newruntime/*.cRepro
Done when
__compiler_openssl_digestlookupFunction($name)for that ABI)./script/aot-smoke.shstays 8/8Parent