Category
Regression · php-src-strict · Reflection · default / PHP 8.2 profile · pillar 4
Problem
On the default (8.2) profile, runtime stream_bucket_new() correctly returns an object (stdClass on 8.2; StreamBucket under PROFILE≥8.4), but Reflection still advertises return type resource. Zend 8.2 Reflection reports object.
Distinct from closed #27797 (PROFILE=8.4 StreamBucket stub shapes) — this is the reference-profile return-type wire still wrong after that close.
Verified on master @b394c0c47e via ./script/docker-exec.sh (2026-08-08), PHP_COMPILER_PROFILE unset.
| Symbol |
Zend 8.2 Reflection (php -n) |
VM default |
stream_bucket_new return |
object |
resource |
runtime gettype(stream_bucket_new(...)) |
object |
object (match) |
php-src reference
PHP implementation target
- Wire Reflection /
InternalArgInfo for stream_bucket_new (and siblings if still drifting) to profile-correct stubs in ext/standard — object on 8.2, StreamBucket on ≥8.4
- PHP-in-PHP; no new
runtime/*.c
Repro
./script/docker-exec.sh -- bash -lc 'unset PHP_COMPILER_PROFILE
cat > /tmp/sb_ref.php <<'"'"'PHP'"'"'
<?php
$r = new ReflectionFunction("stream_bucket_new");
echo "ret=", $r->hasReturnType() ? (string)$r->getReturnType() : "none", "\n";
PHP
php -n /tmp/sb_ref.php
php bin/vm.php /tmp/sb_ref.php
'
Done when
Maintainer gate snapshot (2026-08-08)
Probe green; release-readiness red (helper-runtime-prelink fingerprint mismatch + cold-build timeout).
Category
Regression· php-src-strict · Reflection · default / PHP 8.2 profile · pillar 4Problem
On the default (8.2) profile, runtime
stream_bucket_new()correctly returns an object (stdClasson 8.2;StreamBucketunder PROFILE≥8.4), but Reflection still advertises return typeresource. Zend 8.2 Reflection reportsobject.Distinct from closed #27797 (PROFILE=8.4
StreamBucketstub shapes) — this is the reference-profile return-type wire still wrong after that close.Verified on master
@b394c0c47evia./script/docker-exec.sh(2026-08-08),PHP_COMPILER_PROFILEunset.php -n)stream_bucket_newreturnobjectresourcegettype(stream_bucket_new(...))objectobject(match)php-src reference
ext/standard/basic_functions.stub.php—stream_bucket_newreturnobject(8.2)ext/standard/streamsfuncs.c— bucket handlersPHP implementation target
InternalArgInfoforstream_bucket_new(and siblings if still drifting) to profile-correct stubs inext/standard—objecton 8.2,StreamBucketon ≥8.4runtime/*.cRepro
Done when
object(matches Zend 8.2)StreamBucket(no regression vs Regression: stream_bucket_* Reflection — resource/object not StreamBucket; append/prepend untyped (ext/standard/streamsfuncs.stub.php) #27797)Maintainer gate snapshot (2026-08-08)
Probe green; release-readiness red (helper-runtime-prelink fingerprint mismatch + cold-build timeout).