Skip to content

php-in-php: delete SuperglobalRefreshStandaloneLlvm + StringMultipartStandaloneLlvm — route standalone AOT through PHP bridge (#9907 completion) #13031

Description

@PurHur

Summary

Standalone AOT still quarantines ~1.9k-line SuperglobalRefreshStandaloneLlvm.php and ~1.4k-line StringMultipartStandaloneLlvm.php as opt-out fallbacks when PHP_COMPILER_SUPERGLOBAL_REFRESH_PHP=0. Embed and default standalone already use SuperglobalRefreshRuntime + SuperglobalRefreshJitHelper PHP (#9907).

php-src reference

  • main/php_variables.c — superglobal registration
  • main/rfc1867.c — multipart POST parsing

PHP SSOT (already exists)

  • lib/JIT/Builtin/SuperglobalRefreshRuntime.php — standalone PHP bridge
  • lib/Web/SuperglobalRefreshJitHelper.php — table builders
  • lib/Web/MultipartParser.php + MultipartParserJitHelper.php — multipart via Superglobals refresh

Done when

  • Delete SuperglobalRefreshStandaloneLlvm.php and StringMultipartStandaloneLlvm.php
  • Remove LLVM fallback from SuperglobalRefreshRuntime; always compile PHP bridge for standalone
  • Delete thin router StringMultipart.php; remove Context standalone hook
  • Update shrink/standalone tests; spine sync if needed
  • vendor/bin/phpunit --filter 'SuperglobalRefresh|Multipart' green
  • make bootstrap-selfhost-vm-driver-execute-probe green

C/LLVM shrink

~3270 lines removed from lib/JIT/Builtin/*StandaloneLlvm.php.

Refs #1492, #9907, #9394, #5330

Activity

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

    enhancementNew 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