Skip to content

php-in-php: re-delete ParseStrUserScriptDelimitedJit — MultipartRuntime PHP makes #18548 LLVM restore obsolete (#1492) #18643

Description

@PurHur

Category

php-in-php · runtime-shrink (#1492)

Problem

#18548 restored ~1052-line ParseStrUserScriptDelimitedJit.php because StringMultipartStandaloneLlvm linked __phpc_parse_str_* subhelpers. #18615 deleted StringMultipartStandaloneLlvm and routes user-script multipart through MultipartNativeJitHelper + ParseStrNativeJitHelper PHP.

ParseStrRuntimeShrinkTest and SuperglobalRefreshRuntimeShrinkTest still expect the hand-LLVM file deleted; current master has 4 failing assertions.

Path Registry Delimited parse
User-script AOT (target) ParseStrNativeJitHelper PHP parseDelimitedIntoNative PHP
Current (regression) ParseStrUserScriptDelimitedJit ~1052 LOC LLVM __phpc_parse_str_parse_delimited_pairs etc.

php-src reference

PHP implementation target

  • Delete lib/JIT/Builtin/ParseStrUserScriptDelimitedJit.php
  • lib/JIT/Builtin/ParseStrRuntime.php — drop ensureSubhelpers call; keep ParseStrNativeJitHelper bridge
  • test/unit/JIT/SuperglobalsBracketRuntimeStandaloneTest.php — expect PHP bridges, not __phpc_parse_str_* LLVM
  • test/selfhost/compiler_lib_spine_smoke/main.php — remove require

Repro

php vendor/bin/phpunit test/unit/ParseStrRuntimeShrinkTest.php
# 4 failures: file exists, spine includes require, ParseStrRuntime references class

Done when

  • ParseStrUserScriptDelimitedJit.php deleted (~1052 LOC LLVM removed)
  • ParseStrRuntimeShrinkTest + SuperglobalRefreshRuntimeShrinkTest green
  • ./script/check-aot-build-smoke.sh green
  • make bootstrap-selfhost-vm-driver-execute-probe green

Activity

  1. added
    enhancementNew feature or request
    implementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claim
    on Jul 13, 2026
  2. PurHur commented on Jul 13, 2026

    @PurHur
    OwnerAuthor

    claim: PHP Runtime → PHP — starting this run.

  3. PurHur commented on Jul 13, 2026

    @PurHur
    OwnerAuthor

    Merged via #18645.

    LLVM shrink: deleted ParseStrUserScriptDelimitedJit.php (−1052 LOC). User-script AOT parse_str/multipart now routes exclusively through ParseStrNativeJitHelper + MultipartNativeJitHelper PHP bridges in ParseStrRuntime / MultipartRuntime.

    Verification:

    • ParseStrRuntimeShrinkTest — 13/13 OK (was 4 failures on master)
    • SuperglobalRefreshRuntimeShrinkTest — OK
    • SuperglobalsBracketRuntimeStandaloneTest — OK
    • check-selfhost-spine-coverage-sync — OK
    • bootstrap-selfhost-vm-driver-execute-probe — OK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:compilerCompiler / CFG / JITenhancementNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-0:FoundationPhase 0 – foundation & DevEx

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions