Category
php-in-php · php-src-strict
Problem
VM sscanf() / fscanf() / vfscanf() parse via ext/standard/VmSscanf.php (PHP, #3190). JIT/AOT register LLVM helpers __compiler_sscanf, __compiler_sscanf_array, __compiler_sscanf_ex, __compiler_vfscanf in lib/JIT/Builtin/Type.php with libc sscanf formatting — duplicating VM semantics and blocking self-host surface shrink.
Distinct from #4512 (by-reference array element assignment parity) and #8835 (enum format operand TypeError): this issue is JIT routing to the PHP parser.
php-src reference
Repro
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/vm.php -r "\$n=0; sscanf(\"42\", \"%d\", \$n); var_export(\$n); echo PHP_EOL;"
php bin/jit.php -r "\$n=0; sscanf(\"42\", \"%d\", \$n); var_export(\$n); echo PHP_EOL;"
# JIT lowers via __compiler_sscanf (libc path in Type.php)'
Scope
| Layer |
Path |
| JIT |
lib/JIT/Builtin/StringSscanfJit.php (if present), lib/JIT/Builtin/Type.php |
| VM |
ext/standard/VmSscanf.php — SSOT |
| No new C runtime |
|
Done when
Ref: #1492, #4512, #8835
Category
php-in-php· php-src-strictProblem
VM
sscanf()/fscanf()/vfscanf()parse viaext/standard/VmSscanf.php(PHP, #3190). JIT/AOT register LLVM helpers__compiler_sscanf,__compiler_sscanf_array,__compiler_sscanf_ex,__compiler_vfscanfinlib/JIT/Builtin/Type.phpwith libcsscanfformatting — duplicating VM semantics and blocking self-host surface shrink.Distinct from #4512 (by-reference array element assignment parity) and #8835 (enum format operand TypeError): this issue is JIT routing to the PHP parser.
php-src reference
ext/standard/sscanf.cext/standard/VmSscanf.php,ext/standard/sscanf.phpRepro
Scope
lib/JIT/Builtin/StringSscanfJit.php(if present),lib/JIT/Builtin/Type.phpext/standard/VmSscanf.php— SSOTDone when
sscanf/vfscanfmatch VM + Zend on compliance /test/repro/maintainer_sscanf_*.phpsscanfLLVM for these builtins__compiler_sscanf*symbols removed or gatedRef: #1492, #4512, #8835