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

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