Skip to content

Regenerate the turbo declarations of ScopeOps - #7069

Merged
ondrejmirtes merged 1 commit into
2.3.xfrom
regenerate-scope-ops-declarations
Nov 14, 2026
Merged

ondrejmirtes merged 1 commit into
2.3.xfrom
regenerate-scope-ops-declarations

Conversation

@ondrejmirtes

Copy link
Copy Markdown
Member

f4fb9c6da ("Describe each conditional expression part once when merging scopes") added the private ScopeOps::conditionalExpressionKeyPrefix() and conditionalExpressionKeySuffix() helpers. It ported their logic to turbo-ext/src/ScopeOps.cpp, but it did not regenerate turbo-ext/src/generated/ScopeOps.h. Since then, Compile PHAR's Turbo Extension Version Check has failed at the method parity step (php turbo-ext/bin/side-by-side.php):

✗ turbo-ext/src/generated/ScopeOps.h is stale — run php turbo-ext/bin/generate-declarations.php

The failing check also skips every turbo job that depends on it, including the Docker runs and Commit PHAR, on 2.3.x (20c433f5c, b9bd42781).

  • Green baseline: 94519e24f (the Version Check passed in CI, and side-by-side.php passes locally).
  • First bad commit: f4fb9c6da, found with git bisect run over 94519e24f..b9bd42781 using the parity check.
  • Fix: output of php8.5 turbo-ext/bin/generate-declarations.php. It adds the signatures of the two new private helpers to the generated header. No C++ or PHP logic changes.

Verification on this branch, with the extension built with the strict warning flags (-Werror, clean build):

  • php8.5 turbo-ext/bin/side-by-side.php: exit 0, ScopeOps 15 methods paired
  • turbo-ext/tests/signature-parity.php: OK (18515 members compared)
  • turbo-ext/tests/smoke.php: ALL OK
  • Full paratest suite with the extension loaded: 23701 tests, 1 failure. The failure is the known flaky ResultCacheManagerCollectedDataTest::testFileChangedAndChangedBackDuringTheAnalysisIsAnalysedAgain, which passes 3 of 3 times when rerun on its own.

Shipped PHP code is unchanged, so the downgraded PHAR's PHP 7.4 compatibility is unaffected.

ScopeOps gained the private conditionalExpressionKeyPrefix() and
conditionalExpressionKeySuffix() helpers, so the generated header must
declare their signatures for the method parity check to pass.
@ondrejmirtes
ondrejmirtes merged commit bd251b0 into 2.3.x Nov 14, 2026
729 of 733 checks passed
@ondrejmirtes
ondrejmirtes deleted the regenerate-scope-ops-declarations branch November 14, 2026 09:04
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.

1 participant