Skip to content

php-in-php: delete StringMultipartStandaloneLlvm — MultipartRuntime PHP bridge (#13031)#18615

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-multipart-standalone-delete
Jul 13, 2026
Merged

php-in-php: delete StringMultipartStandaloneLlvm — MultipartRuntime PHP bridge (#13031)#18615
PurHur merged 1 commit into
masterfrom
agent/runtime-php-multipart-standalone-delete

Conversation

@PurHur

@PurHur PurHur commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

Completes #13031 follow-up: user-script CGI superglobal refresh no longer links the ~1367-line StringMultipartStandaloneLlvm.php LLVM quarantine. Multipart POST populate routes through the existing MultipartRuntimeMultipartNativeJitHelper PHP bridge (same pattern as #15624 / #9394).

  • Deleted: lib/JIT/Builtin/StringMultipartStandaloneLlvm.php (−1367 lines LLVM)
  • Updated: SuperglobalRefreshUserScriptLlvm calls MultipartRuntime::ensureUserScriptLinked and __compiler_multipart_populate_post_body instead of __phpc_parse_multipart_post
  • Spine: removed dead require from compiler_lib_spine_smoke/main.php

php-src reference

  • main/rfc1867.c — multipart form parsing (semantics in lib/Web/MultipartParser.php + MultipartNativeJitHelper.php)

PHP implementation path

Layer File
SSOT semantics lib/Web/MultipartParser.php
User-script AOT native populate lib/Web/MultipartNativeJitHelper.php
JIT/AOT link bridge lib/JIT/Builtin/MultipartRuntime.php

Verification

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter "MultipartRuntimeShrinkTest|SuperglobalRefreshRuntimeShrinkTest|SuperglobalsMultipartRuntimeStandaloneTest"'
# OK (9 tests, 35 assertions)

php script/bootstrap-inventory.php && php script/check-selfhost-spine-coverage-sync.php
# OK (4773 files, spine sync green)

make bootstrap-selfhost-vm-driver-execute-probe
# bootstrap-selfhost-vm-driver-execute-probe: OK build/selfhost-lib-spine-smoke

Closes #13031

Made with Cursor

…multipart through MultipartRuntime PHP (#13031)

Complete #13031 follow-up: SuperglobalRefreshUserScriptLlvm now links
MultipartRuntime + MultipartNativeJitHelper instead of the ~1367-line
LLVM quarantine. Removes dead standalone multipart LLVM monolith.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur merged commit 14cd7ca into master Jul 13, 2026
1 check failed
@PurHur PurHur deleted the agent/runtime-php-multipart-standalone-delete branch July 13, 2026 14:08
PurHur added a commit that referenced this pull request Jul 13, 2026
…untime PHP (#18643) (#18645)

#18548 restored ~1052 LOC hand-LLVM delimited parse subhelpers for
StringMultipartStandaloneLlvm; #18615 routes multipart through
MultipartNativeJitHelper + ParseStrNativeJitHelper PHP instead.

Verification:
- php vendor/bin/phpunit test/unit/ParseStrRuntimeShrinkTest.php → OK (13)
- php vendor/bin/phpunit test/unit/SuperglobalRefreshRuntimeShrinkTest.php → OK
- php vendor/bin/phpunit test/unit/JIT/SuperglobalsBracketRuntimeStandaloneTest.php → OK
- php script/check-selfhost-spine-coverage-sync.php → OK
- make bootstrap-selfhost-vm-driver-execute-probe → OK

Co-authored-by: PurHur <PurHur@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
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: delete SuperglobalRefreshStandaloneLlvm + StringMultipartStandaloneLlvm — route standalone AOT through PHP bridge (#9907 completion)

1 participant