Skip to content

php-in-php: lazy StreamLifecycle/StreamRead/StreamFilter/StreamBucket + FunctionStatic from ensureFullStandaloneBodies (Context.php) #35086

Description

@PurHur

Category

php-in-php · runtime-shrink · Pillar Trust (#32122 .1 mint class)

Problem

Context::ensureFullStandaloneBodies still eagerly NestedJITs stream + function-static ABIs during every full standalone init — peers already made these lazy on the minimal path (#34836 Stream*; FunctionStaticHelper already ensureLinked before lookup):

  1. StreamLifecycleRuntime::ensureLinked
  2. StreamReadRuntime::ensureLinked
  3. StreamFilter::ensureLinked
  4. JitStreamBucketKernel::ensureStandaloneBodies
  5. FunctionStaticRuntime::ensureStandaloneBodies (comment in php-in-php: lazy Assert/Gc/Progress/Trigger/ReturnPending/LastError from ensureFullStandaloneBodies (Context.php) #35073 already claimed this drop; call remained)

Leftover Context NestedJIT vs Runtime ABI drift mints feof.1 / stream_bucket_*.1 / phpc_fn_static_*.1 (#31894 / #32122). Call sites already ensureLinked / ensureLinkedForUserScriptLowering before lookup.

php-src reference

PHP implementation target

Done when

  • ensureFullStandaloneBodies does not call the five ensures above
  • ./script/aot-smoke.sh stays 8/8
  • Targeted ./script/phpunit.sh --filter ContextFullStandaloneLazyStream|ContextMinimalStandaloneLazyStream|FunctionStaticRuntime
  • No new runtime/*.c / lib/AOT/runtime/*.c

Parent

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 & DevEx

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions