forked from ircmaxell/php-compiler
-
Notifications
You must be signed in to change notification settings - Fork 1
Language: Fiber JIT/AOT — native suspend/resume (phase 2 of #3130) #4019
Copy link
Copy link
Closed
Labels
area:compilerCompiler / CFG / JITCompiler / CFG / JITarea:vmVirtual machineVirtual machineenhancementNew feature or requestNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claimphase-2:languagePhase 2 – language featuresPhase 2 – language features
Description
Activity
Metadata
Metadata
Assignees
Labels
area:compilerCompiler / CFG / JITCompiler / CFG / JITarea:vmVirtual machineVirtual machineenhancementNew feature or requestNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimSpec complete: repro, php-src ref, done-when — safe for workers to claimphase-2:languagePhase 2 – language featuresPhase 2 – language features
Category
language/runtimeProblem
#3130 delivered VM-only
Fiber(Fiber::suspend(),start(),resume(),getCurrent()).script/capability-syntax-lib.phpstill marksfiber_suspendas JIT=no / AOT=no. Self-host andbin/jit.php/phpc buildpaths that use cooperative scheduling therefore fall back to VM or fail when fibers appear in hot code.php-src reference
Zend/zend_fibers.c— stack switching, suspend/resume, fiber statusZend/zend_fibers.hzend_fiber_object_handlersinzend_fibers.cRepro (gap today)
okokokScope (this repo)
lib/VM/FiberState.php,lib/VM.php(startFiber/resumeFiber)lib/JIT.php, newlib/JIT/FiberSupport.phpor builtin dispatch — suspend saves frame; resume restoreslib/AOT/— immortal fiber context or VM callback trampolinetest/compliance/cases/language/fiber_jit.phpt,test/fixtures/aot/cases/fiber_suspend.phptscript/capability-syntax-lib.php— setjit/aottrue when greenPhase 1: single-fiber suspend/resume in script scope (no nested fibers). Defer:
Fiber::getReturn(), throwing across suspend, concurrent fibers.Done when
okunderbin/jit.phpand AOT binary (same as VM)fiber_suspendrow indocs/capabilities-syntax.mdshows JIT/AOT yes./script/ci-fast.sh --filter Fibergreen (or targeted compliance file)Related