Category
bootstrap | stdlib
Problem
Open mbstring parity issues (#4405 mb_strlen, #3239 mb_substr, #3075 mb_convert_encoding, …) assume an ext/mbstring/ entry point like php-src, but this repo only has ext/standard + ext/types. mb_* helpers are absent from ext/standard/Module.php; there is no ext/mbstring/Module.php and no bootstrap inventory path for mbstring.
Self-host (#1492) needs a single module registration surface before individual mb builtins land.
php-src reference
Repro (failure today)
ls -d ext/mbstring 2>&1 || echo "missing ext/mbstring"
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php -r "var_export(function_exists(\"mb_strlen\")); echo PHP_EOL;"'
# Zend: true — VM: false
| Runtime |
function_exists('mb_strlen') |
| Zend PHP 8.2 (Docker) |
true |
bin/vm.php |
false |
Scope (this repo)
| Area |
Path |
| New module |
ext/mbstring/Module.php |
| Loader |
Wire next to ext/standard/Module.php in runtime module init |
| v1 |
Register stub mb_strlen (or delegate to strlen with documented gap) so function_exists + inventory include the module |
| Inventory |
script/bootstrap-inventory.php lists ext/mbstring/* |
| Follow-ups |
Real algorithms in #4405, #3239, etc. — not this issue |
Done when
Links
Category
bootstrap|stdlibProblem
Open mbstring parity issues (#4405
mb_strlen, #3239mb_substr, #3075mb_convert_encoding, …) assume anext/mbstring/entry point like php-src, but this repo only hasext/standard+ext/types.mb_*helpers are absent fromext/standard/Module.php; there is noext/mbstring/Module.phpand no bootstrap inventory path for mbstring.Self-host (#1492) needs a single module registration surface before individual mb builtins land.
php-src reference
ext/mbstring/mbstring.c—PHP_MINIT, function tableext/mbstring/php_mbregex.c— optional regex subsetRepro (failure today)
function_exists('mb_strlen')truebin/vm.phpfalseScope (this repo)
ext/mbstring/Module.phpext/standard/Module.phpin runtime module initmb_strlen(or delegate tostrlenwith documented gap) sofunction_exists+ inventory include the modulescript/bootstrap-inventory.phplistsext/mbstring/*Done when
ext/mbstring/Module.phploads on VM without Zend PHPfunction_exists('mb_strlen')is true (implementation may be minimal stub documented in issue body)php script/bootstrap-inventory.php --checkincludes mbstring paths./script/ci-fast.sh --filter mbstringgreen for skeleton registration testLinks