Problem
Core 003-MiniWebApp route matrix is green on master (#764 ✅, #1529 ✅). Four layout-edge bisect items remain open — they reproduce partial stdout / template-chain failures not covered by the main execute PHPUnit gate:
| Issue |
Pattern |
| #866 |
$_SERVER['SCRIPT_NAME'] inside runtime-included layout.php |
| #846 |
Private method call before nested include chain |
| #831 |
Global user function called from class method (contact validation) |
| #784 / #807 |
Title-branch partial includes |
These are not required to close #1044 (definition of done is full route matrix + default-on CI gates). They matter for template fidelity, contributor reproducers, and closing the bisect ladder cleanly.
Goal
Land minimal PHPT fixtures + fixes in priority order; mark ladder complete when all four patterns execute with non-empty stdout under AOT.
Scope
Implementation hints
| Piece |
Path |
Notes |
| Bisect script |
script/miniwebapp-aot-bisect.sh |
Run ladder locally |
| Fixtures |
test/fixtures/aot/cases/ |
One PHPT per pattern |
| Superglobals |
lib/AOT/runtime/superglobals_refresh.c |
#866 — $_SERVER in includes |
| Global fn |
lib/Compiler.php |
#831 — TYPE_CALL to file-scope fn from method |
| Includes |
lib/AOT/ |
#846 — private method → include chain |
Verify (local / Docker only)
./script/miniwebapp-aot-bisect.sh
./script/ci-local.sh --filter server_in_include
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \
./script/docker-ci-local.sh --filter global_fn_from_class
No GitHub Actions.
Acceptance criteria
Dependencies
Links
Problem
Core 003-MiniWebApp route matrix is green on
master(#764 ✅, #1529 ✅). Four layout-edge bisect items remain open — they reproduce partial stdout / template-chain failures not covered by the main execute PHPUnit gate:$_SERVER['SCRIPT_NAME']inside runtime-includedlayout.phpThese are not required to close #1044 (definition of done is full route matrix + default-on CI gates). They matter for template fidelity, contributor reproducers, and closing the bisect ladder cleanly.
Goal
Land minimal PHPT fixtures + fixes in priority order; mark ladder complete when all four patterns execute with non-empty stdout under AOT.
Scope
@group aot-linkexecute)script/miniwebapp-aot-bisect.sh(DevEx: script/miniwebapp-aot-bisect.sh — ordered #764 fixture runner #879 ✅)Implementation hints
script/miniwebapp-aot-bisect.shtest/fixtures/aot/cases/lib/AOT/runtime/superglobals_refresh.c$_SERVERin includeslib/Compiler.phpTYPE_CALLto file-scope fn from methodlib/AOT/Verify (local / Docker only)
./script/miniwebapp-aot-bisect.sh ./script/ci-local.sh --filter server_in_include docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ ./script/docker-ci-local.sh --filter global_fn_from_classNo GitHub Actions.
Acceptance criteria
./script/miniwebapp-aot-bisect.shexits 0 when LLVM presentDependencies
Links
examples/003-MiniWebApp/templates/layout.php,src/Router.php