Category
stdlib · php-src-strict
Problem
stream_get_meta_data() on php://temp must report stream_type => 'TEMP' per php-src wrapper metadata. This compiler returns 'MEMORY', breaking code that branches on temp-stream semantics.
| Repro |
Zend 8.2+ |
VM (2026-07-05) |
stream_get_meta_data(fopen('php://temp','r+'))['stream_type'] |
'TEMP' |
'MEMORY' |
php-src reference
PHP implementation target
ext/standard/VmFs.php / stream metadata helpers — distinguish php://temp from php://memory in stream_get_meta_data(); PHP in ext/standard, not new C runtime branches
Repro
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php bin/vm.php test/repro/maintainer_gap_stream_get_meta_data_temp_type.php'
# Zend: ok · VM: fail:'MEMORY'
Done when
Category
stdlib· php-src-strictProblem
stream_get_meta_data()onphp://tempmust reportstream_type => 'TEMP'per php-src wrapper metadata. This compiler returns'MEMORY', breaking code that branches on temp-stream semantics.stream_get_meta_data(fopen('php://temp','r+'))['stream_type']'TEMP''MEMORY'php-src reference
ext/standard/streams.c—php_stream_meta_data()/ temp wrapperstream_typelabelmain/streams/php_stream_temp.c— temp stream wrapper opsPHP implementation target
ext/standard/VmFs.php/ stream metadata helpers — distinguishphp://tempfromphp://memoryinstream_get_meta_data(); PHP inext/standard, not new C runtime branchesRepro
Done when
okon VM/JIT/AOT.phptguard undertest/compliance/cases/stdlib/