Skip to content

M2 spine: VmSplAutoload AOT-safe runners + usort/uasort (582/586) - #1827

Merged
PurHur merged 1 commit into
masterfrom
agent/stdlib-vmsplautoload
May 25, 2026
Merged

M2 spine: VmSplAutoload AOT-safe runners + usort/uasort (582/586)#1827
PurHur merged 1 commit into
masterfrom
agent/stdlib-vmsplautoload

Conversation

@PurHur

@PurHur PurHur commented May 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Refactor VmSplAutoload to use SplAutoloadRunner / SplAutoloadFunctionRunner / SplAutoloadInstanceMethodRunner instead of anonymous closures so the unit passes AOT lint in the self-host spine (no Expr_Closure).
  • Add VmSplAutoload.php, usort_.php, and uasort_.php to compiler_lib_spine_smoke (579 → 582 / 586 inventory).
  • Sync North Star 2 docs and bundle tests; clear stale m2-spine-unit fixture entries.

Closes #1543
Closes #1821
Part of #1492 (North Star 2; was #1056)

Test plan

  • php bin/compile.php -l ext/standard/VmSplAutoload.php
  • php bin/compile.php -l test/selfhost/compiler_lib_spine_smoke/main.php (after script/apply-patches.sh)
  • vendor/bin/phpunit --filter BootstrapSelfhostBundleTest
  • vendor/bin/phpunit --filter SplAutoloadRegisterTest
  • php script/check-m2-spine-issue-hygiene.php
  • WAVE3_ROADMAP_SYNC_GATE=1 vendor/bin/phpunit --filter Wave3RoadmapSyncTest
  • Docker (php-compiler:22.04-dev, tar pipe): above tests green

Deferred to M4: bin/vm.php, src/cli.php (4 files remain for 586/586).

Made with Cursor

Refactor VmSplAutoload to SplAutoloadRunner objects so the unit AOT-lints
without Expr_Closure, then land VmSplAutoload, usort_, and uasort_ in
compiler_lib_spine_smoke toward North Star 2 inventory closure.

Closes #1543
Closes #1821
Part of #1492

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