Problem
Wave 3 is complete on master (#1354 ✅ via #1925 , #1751 ✅), but:
Goal
Close Roadmap wave 3: full PHP language + stdlib gaps tracker (#1354–#1379) #1380 with final summary comment + link to docs/roadmap-wave3.md
Add a one-line “Wave 3 complete” banner at top of docs/roadmap-wave3.md (deferrals → Language features wave 2: JIT/syntax gaps tracker (#1222–#1235) #1238 , JIT: spl_autoload_register compile-time lowering (#1369 phase 2) #1776 , Language: PHP 8 attributes — JIT/AOT reflection (phase 2 of #1354) #1936 attributes reflection)
Ensure docs/capabilities-syntax.md attributes row says “VM yes; reflection deferred Language: PHP 8 attributes — JIT/AOT reflection (phase 2 of #1354) #1936 ”
Optional: script/audit-wave3-issues.sh (local gh + grep) — not GHA
Implementation hints (file checklist)
File
Action
docs/roadmap-wave3.md
Banner + close all language/stdlib rows; link deferrals
docs/capabilities-syntax.md
Regenerate via php script/capability-syntax.php; attributes → #1936
docs/capabilities.md
Regenerate via php script/capability-matrix.php (optional same PR)
script/check-wave3-roadmap-sync.php
Already default-on via #1814 — run before close
test/unit/Wave3RoadmapSyncTest.php
Assert checker passes on committed docs
ROADMAP #78
Phase 1 language row: point to wave3 doc, not open children
#1380 body
Comment “closed as umbrella; tracking continues in wave 2 #1238 + JIT audits”
Close #1380 comment template
Wave 3 language 12/12 + stdlib 13/13 on master (#1751 ). Remaining work is phase-2 / JIT-only — see #1936 , #1776 , #1238 . Doc SSOT: docs/roadmap-wave3.md.
Acceptance criteria
Verification (local / Docker only)
docker run --rm -v " $( pwd) :/compiler" -w /compiler php-compiler:22.04-dev \
php script/check-wave3-roadmap-sync.php
WAVE3_ROADMAP_SYNC_GATE=1 ./script/ci-fast.sh --filter Wave3RoadmapSync
No GitHub Actions.
Dependencies
Links
Problem
Wave 3 is complete on
master(#1354 ✅ via #1925, #1751 ✅), but:docs/roadmap-wave3.mdsummary says 12 language done (correct: JIT/AOT: dynamic superglobal keys from boxed foreach variables (#86) #1355 unused) while ROADMAP 🗺️ ROADMAP: Compile a small PHP web application (living document) #78 sometimes says “13/13”php script/check-wave3-roadmap-sync.phppasses only when doc tables match — contributors may still file duplicate language issuesGoal
docs/roadmap-wave3.mddocs/roadmap-wave3.md(deferrals → Language features wave 2: JIT/syntax gaps tracker (#1222–#1235) #1238, JIT: spl_autoload_register compile-time lowering (#1369 phase 2) #1776, Language: PHP 8 attributes — JIT/AOT reflection (phase 2 of #1354) #1936 attributes reflection)docs/capabilities-syntax.mdattributes row says “VM yes; reflection deferred Language: PHP 8 attributes — JIT/AOT reflection (phase 2 of #1354) #1936”script/audit-wave3-issues.sh(localgh+ grep) — not GHAImplementation hints (file checklist)
docs/roadmap-wave3.mddocs/capabilities-syntax.mdphp script/capability-syntax.php; attributes → #1936docs/capabilities.mdphp script/capability-matrix.php(optional same PR)script/check-wave3-roadmap-sync.phptest/unit/Wave3RoadmapSyncTest.phpClose #1380 comment template
Acceptance criteria
php script/check-wave3-roadmap-sync.phpexits 0Verification (local / Docker only)
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \ php script/check-wave3-roadmap-sync.php WAVE3_ROADMAP_SYNC_GATE=1 ./script/ci-fast.sh --filter Wave3RoadmapSyncNo GitHub Actions.
Dependencies
Links
docs/roadmap-wave3.md, ROADMAP 🗺️ ROADMAP: Compile a small PHP web application (living document) #78