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
Stdlib: localeconv() — decimal_point/thousands_sep/currency_symbol NULL not locale strings (ext/standard/locale.c) #11603
localeconv() returns an array shape but numeric formatting fields are NULL instead of the C-library locale strings Zend exposes (decimal_point'.', thousands_sep'', currency_symbol'' in C locale).
Breaks number_format() callers and any code reading localeconv() for separators.
Mentioned in backlog #10269; this is the actionable repro.
Already green on master — localeconv() returns decimal='.', thousands='', currency='' via FFI lconv in VmLocale::localeconv(). No additional code change required this run.
Root cause: not localeconv() itself — stmt-level $lc['decimal_point'] ?? null inside func-call args (e.g. var_export) was wired to the hoisted ArrayDimFetch slot instead of the ?? merge slot.
Fix: final ARG_SEND pass prefers coalesce merge slot (lib/Compiler.php).
Activity
PurHur commentedon Jun 25, 2026
claim: PHP Compiler STD Lib — batch (issues #11625, #11603, #11374)
PurHur commentedon Jun 25, 2026
Already green on master —
localeconv()returnsdecimal='.',thousands='',currency=''via FFIlconvinVmLocale::localeconv(). No additional code change required this run.PurHur commentedon Jun 25, 2026
claim: PHP Compiler STD Lib — batch (issues #11547, #11636, #11603)
PurHur commentedon Jul 4, 2026
claim: worker-lane-c — starting this run
PurHur commentedon Jul 4, 2026
Merged via #15924.
Root cause: not
localeconv()itself — stmt-level$lc['decimal_point'] ?? nullinside func-call args (e.g.var_export) was wired to the hoistedArrayDimFetchslot instead of the??merge slot.Fix: final
ARG_SENDpass prefers coalesce merge slot (lib/Compiler.php).Verification:
```bash
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/vm.php test/repro/maintainer_gap_localeconv_fields.php
php bin/vm.php test/compliance/cases/stdlib/localeconv_fields.phpt'
```
→
decimal='.',thousands='',currency='',coalesce='home'Language: prefer ?? merge slot over dim-fetch for func call args (#11603