Skip to content

php-in-php: split StreamReadBridgeLlvm from StreamReadRuntime (#18672)#18677

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-streamread-bridge-shrink
Jul 13, 2026
Merged

php-in-php: split StreamReadBridgeLlvm from StreamReadRuntime (#18672)#18677
PurHur merged 1 commit into
masterfrom
agent/runtime-php-streamread-bridge-shrink

Conversation

@PurHur

@PurHur PurHur commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Semantics unchanged — SSOT remains ext/standard/StreamReadJitHelper.php (#9393, #12937).

C runtime shrink

No hand-written C in lib/AOT/runtime/ (already empty per #17148). This run shrinks the JIT runtime monolith by moving ~278 lines of inline LLVM emission out of StreamReadRuntime.php.

File Before After
StreamReadRuntime.php ~476 LOC 198 LOC
StreamReadBridgeLlvm.php 295 LOC (new, LLVM bridge layer only)

Verification

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php vendor/bin/phpunit test/unit/StreamReadRuntimeShrinkTest.php'
# OK (4 tests, 17 assertions)

make bootstrap-selfhost-vm-driver-execute-probe
# bootstrap-selfhost-vm-driver-execute-probe: OK

Closes #18672

Made with Cursor

Move LLVM ABI bridges and deferred inventory stubs into StreamReadBridgeLlvm
so StreamReadRuntime stays a thin StreamReadJitHelper orchestrator (198 LOC,
under the 360-line shrink-test ceiling). Semantics unchanged — PHP SSOT
remains ext/standard/StreamReadJitHelper.php.

Closes #18672

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur merged commit 4ebc627 into master Jul 13, 2026
@PurHur PurHur deleted the agent/runtime-php-streamread-bridge-shrink branch July 13, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

php-in-php: split StreamReadBridgeLlvm from StreamReadRuntime — shrink below shrink-test ceiling (#9393 phase 2)

1 participant