You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Regression: locale_get_primary_language/region/script gated off default 8.4.0-dev profile (re-#5125, ext/intl/locale) #17117
locale_get_primary_language(), locale_get_region(), and locale_get_script() are implemented under ext/intl/ and were marked done in #5125, but on the default 8.4.0-dev toolchain (no PHP_COMPILER_PROFILE) they are not registered. Workers must set PHP_COMPILER_PROFILE=8.4 to reach them. Zend with ext/intl loaded exposes the parsers on the reference host.
Root cause:advertisesLocaleParserForwardProfile() used advertisesGraphemeStrContains() which compares raw VERSION (8.4.0-dev) against 8.4.0 (false), while supportsLocaleParserForwardProfile() correctly uses builtinAdvertisementVersion() (returns 8.4.0 on the dev line). Functions were registered but function_exists() returned false.
Fix:advertisesLocaleParserForwardProfile() now delegates to supportsLocaleParserForwardProfile().
Verification:
php bin/vm.php test/repro/maintainer_gap_locale_get_primary_language.php → ok
php bin/vm.php test/compliance/cases/stdlib/locale_get_parts.phpt → green
vendor/bin/phpunit --filter IntlExtensionPolicyTest → OK (3 tests)
Activity
PurHur commentedon Jul 7, 2026
claim: PHP Compiler STD Lib — starting this run
Stdlib: advertise locale BCP-47 parsers on default 8.4.0-dev profile (#…
PurHur commentedon Jul 7, 2026
Merged via PR #17128.
Root cause:
advertisesLocaleParserForwardProfile()usedadvertisesGraphemeStrContains()which compares rawVERSION(8.4.0-dev) against8.4.0(false), whilesupportsLocaleParserForwardProfile()correctly usesbuiltinAdvertisementVersion()(returns8.4.0on the dev line). Functions were registered butfunction_exists()returned false.Fix:
advertisesLocaleParserForwardProfile()now delegates tosupportsLocaleParserForwardProfile().Verification:
php bin/vm.php test/repro/maintainer_gap_locale_get_primary_language.php→ okphp bin/vm.php test/compliance/cases/stdlib/locale_get_parts.phpt→ greenvendor/bin/phpunit --filter IntlExtensionPolicyTest→ OK (3 tests)php bin/compile.php -l test/fixtures/aot/compile-only/locale_get_parts.php→ compile-only OK (runtime JIT still deferred per Stdlib: locale_get_primary_language() / locale_get_region() / locale_get_script() — intl locale parsing (ext/intl/locale) #5125)