Repository navigation
Conversation
Fix php#24081 ZEND_VM_DISPATCH() ran the CALL variant of the handler and returned its next opline to execute_ex(), whose execute_data still pointed at the entry frame. It now tail calls the TAILCALL variant of the handler.
Member
|
NB: This should target 8.5 |
Member
|
Hey! This is causing test failure in arm CI. https://app.circleci.com/pipelines/github/php/php-src/35749/workflows/4693c978-fcc7-4f13-afeb-64d14f914b5b/jobs/35387 Ideas ? @devnexen @arnaud-lb |
Member
Author
|
I think can be fixed with |
lisachenko
pushed a commit
to lisachenko/z-engine
that referenced
this pull request
Oct 10, 2026
#280) php/php-src#24109 (merged into PHP-8.6 as 2cf7ad0) makes the generated ZEND_USER_OPCODE_SPEC_TAILCALL_HANDLER resume the DISPATCH result inside the tail-call chain instead of returning it to execute_ex()'s stale frame, so OpCode::setHandler() no longer needs to refuse on VM_KIND_TAILCALL. Remove the guard, its exception factory, the issue-280 probe ladder and the dispatch-only diagnose workflow; keep Core::vmKind() as plain engine introspection, and keep the every-leg hook coverage the guard test introduced as OpCodeHookLifecycleTest (the gap that let #280 ship unnoticed was that all other hook tests are internal-group only). Docs now record the bug as fixed upstream rather than as a live caveat. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U4cKi87mVQ896uSrw592fG
lisachenko
pushed a commit
to lisachenko/zdebug
that referenced
this pull request
Oct 10, 2026
… fixed php-src fixed the user-opcode dispatch under the tail-call VM (lisachenko/z-engine#280, resolved by php/php-src#24109 merged into PHP-8.6), and current 8.6 nightlies run engine hooks cleanly on Apple Silicon, so the experimental escape hatch comes off: the arm64 + 8.6 leg fails the workflow like every other leg again. Docs record the bug as fixed instead of as a platform exception. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U4cKi87mVQ896uSrw592fG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix #24081
ZEND_VM_DISPATCH() ran the CALL variant of the handler and returned its next opline to execute_ex(), whose execute_data still pointed at the entry frame. It now tail calls the TAILCALL variant of the handler.