Skip to content

North Star 1: layout-edge AOT bisect ladder (post-#764, not blocking #1044 close) #1750

Description

@PurHur

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

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions