You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Language: exit(status:)/die(status:) named parameters — parse error without PHP_COMPILER_PROFILE=8.4 (Zend/zend_compile.c) #17681
language · php-src-strict · PHP 8.4 forward profile
Problem
PHP 8.4 allows named parameters on exit/die (exit(status: 0)). With PHP_COMPILER_PROFILE=8.4, this compiler accepts and runs the form; on the default reference profile it fails at parse time (unexpected token ":"). Forward-profile gating should not block syntax that Zend 8.4 accepts when the compilation unit targets 8.4 semantics.
lib/ parser/compile — accept exit(status:) / die(status:) on PHP 8.4 forward profile without requiring ad-hoc env at parse time when project profile is 8.4
Lowering in PHP (ext/standard exit/die builtins), not new C runtime branches
test/repro/maintainer_gap_exit_named_status.php and maintainer_gap_die_named_status.php succeed under PHP 8.4 profile without parse errors on default when profile requests 8.4
Compliance guard under test/compliance/cases/language/exit_die_named_status_84.phpt
php-src-strict on 8.4 profile; no php-compiler-strict shortcut
Fix:LanguageProfileScope applies phpc.jsonlanguageProfile or // php-compiler-language-profile=8.4 before preprocess gates; supportsExitFunctionForm() aligned with other 8.4 forward-profile syntax gates.
Verification:
php bin/vm.php test/repro/maintainer_gap_exit_named_status.php → exit 0 (no CLI env)
Fix: Added lib/LanguageProfileScope.php to the M2 self-host spine bundle (4337→4338). Regenerated bootstrap inventory/profile and updated spine footnotes.
Verification:
php script/check-selfhost-spine-coverage-sync.php # OK 4338/4338
php script/check-selfhost-spine-count-sync.php # OK 4338/4338
make bootstrap-selfhost-vm-driver-execute-probe # OK
BOOTSTRAP_ALLOW_STALE_SIDECAR=1 make north-star5-verify-fast # OK
Activity
PurHur commentedon Jul 10, 2026
claim: worker-lane-c — starting this run
Language: exit(status:)/die(status:) without CLI profile env (#17681) (…
PurHur commentedon Jul 10, 2026
Merged via #17685
Fix:
LanguageProfileScopeappliesphpc.jsonlanguageProfileor// php-compiler-language-profile=8.4before preprocess gates;supportsExitFunctionForm()aligned with other 8.4 forward-profile syntax gates.Verification:
php bin/vm.php test/repro/maintainer_gap_exit_named_status.php→ exit 0 (no CLI env)php bin/vm.php test/repro/maintainer_gap_die_named_status.php→ exit 1vendor/bin/phpunit --filter LanguageProfileScopeTest→ OK (3 tests)vendor/bin/phpunit --filter "exit_die_named_status_84|exit_named_status_reference" test/compliance/VMTest.php→ OK (2 tests)php script/bootstrap-inventory.php --check→ OK 4338/4338make bootstrap-selfhost-vm-driver-execute-probe→ OKPurHur commentedon Jul 10, 2026
claim: cursor-agent-lane-b — spine coverage follow-up for
lib/LanguageProfileScope.php(#17685 merge left check-selfhost-spine-coverage-sync red)Bootstrap: add LanguageProfileScope to spine + extend #17681 guards (#…
Bootstrap: add LanguageProfileScope.php to self-host spine (#17681). (#…
PurHur commentedon Jul 10, 2026
Merged via #17692.
Fix: Added
lib/LanguageProfileScope.phpto the M2 self-host spine bundle (4337→4338). Regenerated bootstrap inventory/profile and updated spine footnotes.Verification: