Category
php-in-php · runtime-shrink (#1492, follow #20028 rename / #20086 StatPath / #17072 locale AOT)
Problem
lib/JIT/Builtin/LocaleParser.php still early-returns on UserScriptAotDeferNestedJit::shouldDefer() before JitVmHelperLink::ensureBridge. User-script / thin standalone AOT never links __phpc_jit_locale_get_* bridges for non-literal locales; embed already uses LocaleParserJitHelper → VmLocale.
#20028 proved the same helper can always route through JitVmHelperLink (NestedJIT of the PHP helper, with env clearing inside the link helper). Locale parsing is pure PHP string work — no libc kernel required.
| Mode |
Today |
Target |
| Thin / user-script AOT |
shouldDefer → skip link |
JitVmHelperLink → LocaleParserJitHelper |
| Embed / non-thin |
LocaleParserJitHelper NestedJIT |
unchanged |
php-src reference
PHP implementation target
lib/JIT/Builtin/LocaleParser.php — delete UserScriptAotDeferNestedJit import + early return; keep NestedJitCompileScope guard; always JitVmHelperLink::ensureBridge
test/unit/LocaleParserRuntimeShrinkTest.php — assert no UserScriptAotDeferNestedJit; bridge via JitVmHelperLink + LocaleParserJitHelper
Repro
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
vendor/bin/phpunit test/unit/LocaleParserRuntimeShrinkTest.php test/unit/LocaleParseTest.php test/unit/LocaleDefaultTest.php
make bootstrap-selfhost-vm-driver-execute-probe
'
Done when
Refs #1492, #17072, #20028, #20086
Category
php-in-php· runtime-shrink (#1492, follow #20028 rename / #20086 StatPath / #17072 locale AOT)Problem
lib/JIT/Builtin/LocaleParser.phpstill early-returns onUserScriptAotDeferNestedJit::shouldDefer()beforeJitVmHelperLink::ensureBridge. User-script / thin standalone AOT never links__phpc_jit_locale_get_*bridges for non-literal locales; embed already usesLocaleParserJitHelper→VmLocale.#20028proved the same helper can always route throughJitVmHelperLink(NestedJIT of the PHP helper, with env clearing inside the link helper). Locale parsing is pure PHP string work — no libc kernel required.shouldDefer→ skip linkJitVmHelperLink→LocaleParserJitHelperLocaleParserJitHelperNestedJITphp-src reference
locale_get_primary_language/locale_get_region/locale_get_scriptPHP implementation target
lib/JIT/Builtin/LocaleParser.php— deleteUserScriptAotDeferNestedJitimport + early return; keepNestedJitCompileScopeguard; alwaysJitVmHelperLink::ensureBridgetest/unit/LocaleParserRuntimeShrinkTest.php— assert noUserScriptAotDeferNestedJit; bridge viaJitVmHelperLink+LocaleParserJitHelperRepro
Done when
UserScriptAotDeferNestedJitremoved fromLocaleParser.phpJitVmHelperLink+LocaleParserJitHelperfor locale_get_* bridgesmake bootstrap-selfhost-vm-driver-execute-probegreenRefs #1492, #17072, #20028, #20086