Skip to content

Bootstrap: unblock Zend spine — mimeheader builtins + cross-unit traits (#22642)#23124

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-22642-spine-staticcall-trait
Jul 25, 2026
Merged

Bootstrap: unblock Zend spine — mimeheader builtins + cross-unit traits (#22642)#23124
PurHur merged 1 commit into
masterfrom
agent/issue-22642-spine-staticcall-trait

Conversation

@PurHur

@PurHur PurHur commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Spine smoke entry calls mb_encode_mimeheader / mb_decode_mimeheader instead of VmMbstring::encodeMimeheader() STATICCALL_INIT (r13 failure after ~4.6h honest Zend full-spine AOT).
  • TraitClassConstConflictCheck skips traits whose AST lives in a prior include unit so incremental AOT can compile ClassConstFetchHelper after ClassConstFetchHelperTrait.
  • Unit guards for both behaviors.

Extracted from DIRTY #22717 (most of that PR already landed via #23032/#23034/#23035/…). Does not close the verified-fresh gen-0 seed rebuild (28 GiB working set / split-compilation still open on closed #22642).

Test plan

  • php script/check-selfhost-spine-coverage-sync.php → OK 6541/6541
  • ./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter "BootstrapLibSpineVmSmokeTest|ClassConstFetchRuntimeShrinkTest"'OK (20 tests, 70 assertions)

Verification

check-selfhost-spine-coverage-sync: OK (spine covers all 6541 inventory files)
OK (20 tests, 70 assertions)

Refs #22642 · supersedes remaining unmerged bits of #22717

Made with Cursor

…ts (#22642)

Honest full-spine AOT died at VmMbstring::encodeMimeheader STATICCALL_INIT
and at ClassConstFetchHelper's cross-unit trait use. Call mb_* builtins on
the spine smoke entry and skip TraitClassConstConflictCheck when the trait
AST lives in a prior include unit.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant