Category
php-in-php · runtime-shrink · php-compiler-strict (standalone AOT cycle scan)
Problem
GcCollectCyclesCollectRuntimeShrinkTest::testEmbedCollectCyclesImplIsThinPhpBridge fails on master: embed JIT routes gc_collect_cycles() through GcCollectCyclesJitHelper::collectCyclesEmbed (PHP visit via visitNativeRegistryObject), but lib/JIT/Builtin/GcCollectCyclesRuntime.php still contains ~500 LOC of standalone LLVM (phpc_gc_visit_object, mark/sweep/inbound) that the shrink test expects quarantined.
php-src reference
PHP implementation target
- New
lib/JIT/Builtin/GcCollectCyclesStandaloneLlvm.php — standalone-only cycle scan LLVM
GcCollectCyclesRuntime.php — embed PHP bridge only; net shrink of phpc_gc_visit_object string + LLVM bodies
Repro / verification
./script/docker-exec.sh -- bash -lc 'vendor/bin/phpunit test/unit/GcCollectCyclesCollectRuntimeShrinkTest.php'
make bootstrap-selfhost-vm-driver-execute-probe
Done when
Related
Category
php-in-php· runtime-shrink · php-compiler-strict (standalone AOT cycle scan)Problem
GcCollectCyclesCollectRuntimeShrinkTest::testEmbedCollectCyclesImplIsThinPhpBridgefails on master: embed JIT routesgc_collect_cycles()throughGcCollectCyclesJitHelper::collectCyclesEmbed(PHP visit viavisitNativeRegistryObject), butlib/JIT/Builtin/GcCollectCyclesRuntime.phpstill contains ~500 LOC of standalone LLVM (phpc_gc_visit_object, mark/sweep/inbound) that the shrink test expects quarantined.php-src reference
Zend/zend_gc.cPHP implementation target
lib/JIT/Builtin/GcCollectCyclesStandaloneLlvm.php— standalone-only cycle scan LLVMGcCollectCyclesRuntime.php— embed PHP bridge only; net shrink ofphpc_gc_visit_objectstring + LLVM bodiesRepro / verification
./script/docker-exec.sh -- bash -lc 'vendor/bin/phpunit test/unit/GcCollectCyclesCollectRuntimeShrinkTest.php' make bootstrap-selfhost-vm-driver-execute-probeDone when
GcCollectCyclesCollectRuntimeShrinkTestgreen (nophpc_gc_visit_objectin Runtime)GcCollectCyclesRuntimeStandaloneTest+ VM gc_collect_cycles repro unchangedRelated