[pull] master from ruby:master#867
Merged
pull[bot] merged 10 commits intoturkdevops:masterfrom Mar 20, 2026
Merged
Conversation
(ruby/erb#108) ruby/erb@2fd0a6b71c Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
* [DOC] Fix links * [DOC] Fix links
When ZJIT's send fallback (gen_send_without_block) cannot optimize a
Send instruction, it calls rb_vm_opt_send_without_block, which uses
VM_EXEC to execute the callee. VM_EXEC sets VM_FRAME_FLAG_FINISH on
the callee's frame. In the interpreter, the same send is dispatched
inline by vm_exec_core without setting FLAG_FINISH.
This flag difference changes how `throw TAG_RETURN` (used by `return`
inside `rescue`) is processed in vm_exec_handle_exception:
- Without FLAG_FINISH: TAG_RETURN is converted to TAG_BREAK, and
frame_return_value() returns the actual value (e.g. :f_raise_return)
- With FLAG_FINISH: TAG_RETURN stays as-is, and frame_return_value()
returns Qnil
This caused TracePoint to report nil instead of the actual return value
for methods like:
def f_raise
raise
rescue
return :f_raise_return
end
Fix by skipping ZJIT compilation while ISEQ trace events are active,
so methods fall back to the interpreter which handles sends inline.
Instead of blocking compilation entirely when tracing is active, emit counted side exits in HIR before send fallback instructions that use VM_EXEC (which sets FLAG_FINISH on the callee frame, breaking throw TAG_RETURN semantics). This gives us runtime stats on how often tracing causes side exits while still allowing compilation. The tracing check is done at HIR construction time so that Send fallback instructions are never emitted into the IR when tracing is active, replaced by SideExit instructions instead. Affected YARV instructions: opt_neq, opt_send_without_block (and all opt_* variants), send, sendforward, invokesuper, invokesuperforward, invokeblock.
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action). Updates `taiki-e/install-action` from 2.68.36 to 2.69.2 - [Release notes](https://github.com/taiki-e/install-action/releases) - [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md) - [Commits](taiki-e/install-action@3a91142...42721de) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.69.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
rb_ivar_get can raise Ractor::IsolationError for class/module ivars from non-main Ractors. Without gen_prepare_non_leaf_call, the frame state is not properly set up when the exception is raised, which can lead to crashes or incorrect behavior during exception handling.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )