Skip to content

Bootstrap Phase C: AOT link and native execute gate#517

Merged
PurHur merged 1 commit into
masterfrom
issue-512-bootstrap-phase-c
May 22, 2026
Merged

Bootstrap Phase C: AOT link and native execute gate#517
PurHur merged 1 commit into
masterfrom
issue-512-bootstrap-phase-c

Conversation

@PurHur
Copy link
Copy Markdown
Owner

@PurHur PurHur commented May 22, 2026

Summary

  • Add script/bootstrap-aot-link.sh and make bootstrap-aot-link to compile each aot_link_targets entry from docs/bootstrap-profile.json, run the native binary, and assert stdout matches Zend PHP.
  • Extend the bootstrap profile with aot_link_targets (lint superset minus nullable_types.php until user-function AOT is ready).
  • Add test/aot/BootstrapPhaseCTest.php (@group bootstrap, aot-link) and document Phase C in docs/bootstrap-selfhost.md; optional php script/bootstrap-aot-lint.php --link.

Closes #512

Test plan

  • docker run --rm -m 10g -v $(pwd):/compiler -w /compiler -e PHP_COMPILER_MEMORY_LIMIT=4096M php-compiler:22.04-dev ./script/bootstrap-aot-link.sh
  • docker run ... vendor/bin/phpunit test/aot/BootstrapPhaseCTest.php
  • Local/Docker CI green

Made with Cursor

Introduce script/bootstrap-aot-link.sh and Makefile target to compile
aot_link_targets from the bootstrap profile, run native binaries, and
compare stdout to Zend PHP. Wire optional --link on bootstrap-aot-lint
and add PHPUnit coverage for echo_hello and the link script.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur merged commit 0a99b6b into master May 22, 2026
@PurHur PurHur deleted the issue-512-bootstrap-phase-c branch May 22, 2026 12:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Self-host Phase C: AOT link bootstrap targets and run native HelloWorld binary

1 participant