Skip to content

php-in-php: JIT ObStatusRuntime — route ob_get_status/ob_list_handlers through VmOutput PHP not LLVM globals (#1492) #9497

Description

@PurHur

Category

php-in-php · stdlib

Problem

Output-buffer introspection JIT still uses ObStatusRuntime (~396 lines LLVM) building hashtables from ObStorageGlobals in LLVM. VM implements ob_get_status() / ob_list_handlers() in PHP (ext/standard/, VmOutput).

Stdlib lowering tracked in #4877; this issue is the LLVM → PHP migration for JIT/AOT.

php-src reference

Repro

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
wc -l lib/JIT/Builtin/ObStatusRuntime.php
php bin/vm.php -r "var_export(ob_get_status(false));"
php bin/jit.php -r "var_export(ob_get_status(false));" 2>&1 | head -5
'

Scope

Path Role
lib/JIT/Builtin/ObStatusRuntime.php LLVM to shrink
lib/JIT/Builtin/ObOutputRuntime.php related output stack
ext/standard/VmOutput.php (or sibling) PHP SSOT
Stdlib parity #4877

Done when

Links

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

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions