Category
php-in-php · compile-pipeline / self-host #1492
Problem
lib/JIT/Builtin/StringNaturalCompareJit.php (~365 LOC) embeds LLVM natural-order compare for strnatcmp/strnatcasecmp. VM semantics already live in ext/standard/VmString.php (strnatcmp / strnatcasecmp). C runtime deleted in #5517; LLVM monolith remains and blocks PHP-in-PHP.
php-src reference
Repro
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/vm.php -r "var_dump(strnatcmp(\"img10\", \"img2\"));"
php bin/jit.php -r "var_dump(strnatcmp(\"img10\", \"img2\"));"'
Scope
| Path |
Work |
ext/standard/NaturalCompareJitHelper.php |
SSOT bridge calling VmString::strnatcmp/strnatcasecmp |
lib/JIT/Builtin/StringStrnatcmp.php / StringStrnatcasecmp.php |
Thin ABI bridge (keep i8* signature for HashTable sort) |
| Delete |
lib/JIT/Builtin/StringNaturalCompareJit.php |
Done when
Category
php-in-php· compile-pipeline / self-host #1492Problem
lib/JIT/Builtin/StringNaturalCompareJit.php(~365 LOC) embeds LLVM natural-order compare forstrnatcmp/strnatcasecmp. VM semantics already live inext/standard/VmString.php(strnatcmp/strnatcasecmp). C runtime deleted in #5517; LLVM monolith remains and blocks PHP-in-PHP.php-src reference
ext/standard/string.c—strnatcmp/strnatcasecmpRepro
Scope
ext/standard/NaturalCompareJitHelper.phpVmString::strnatcmp/strnatcasecmplib/JIT/Builtin/StringStrnatcmp.php/StringStrnatcasecmp.phpi8*signature for HashTable sort)lib/JIT/Builtin/StringNaturalCompareJit.phpDone when
strnatcmp/strnatcasecmpmatch VM on reproStringNaturalCompareJit.phpvendor/bin/phpunit --filter NaturalComparegreenmake bootstrap-selfhost-vm-driver-execute-probeOK