Skip to content

[pull] master from ruby:master#884

Merged
pull[bot] merged 12 commits intoturkdevops:masterfrom
ruby:master
Mar 25, 2026
Merged

[pull] master from ruby:master#884
pull[bot] merged 12 commits intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Mar 25, 2026

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 : )

Edouard-chin and others added 12 commits March 25, 2026 13:08
- This new suite needs to be added to a group in order to be picked up.

  I saw the warning on CI

  ./spec/bundler/errors_spec.rb is not assigned to any Windows runner group. see spec/support/windows_tag_group.rb for details.

ruby/rubygems@ed87214b37
They can take a block and so the keyword location is not always the entirety of the node.
You can get it by constructing a location that is just the first 5 characters
but why not have it be provided by prism?

ruby/prism@878d79eb8c
#16541)

Change vm_search_method_fastpath, vm_search_method, vm_method_cfunc_is,
opt_equality, vm_opt_neq, vm_opt_nil_p, vm_opt_not, and vm_objtostring
to take a CFP instead of an iseq. The iseq is now read lazily from
reg_cfp->iseq only when the slowpath is actually needed.

This is a preparatory refactoring for lightweight JIT frames where the
iseq may not always be written eagerly to the CFP.

ZJIT's rb_zjit_vm_search_method and rb_vm_method_cfunc_is, which are
called with a compile-time iseq rather than a live CFP, now call the
slowpath directly.
The caller in gen_send_iseq_direct was eagerly writing Qnil to all
non-parameter local slots of the callee's frame before every JIT-to-JIT
call. This is unnecessary because compile_jit_entry_state already
initializes non-parameter locals to Const(Qnil) in the JIT entry block,
and these values are propagated to the target block via branch edges.
Before any non-leaf call (including eval/binding), gen_spill_locals
writes these nil values from the FrameState to the stack, ensuring
that eval can correctly read uninitialized locals as nil.

The nil-fill in function_stub_hit's prepare_for_exit is kept because
that path handles compilation failures where JIT code never runs.
Previously we would side-exit if the index was negative. Instead, adjust
the index to be in-bounds.
@pull pull bot locked and limited conversation to collaborators Mar 25, 2026
@pull pull bot added the ⤵️ pull label Mar 25, 2026
@pull pull bot merged commit 8514166 into turkdevops:master Mar 25, 2026
1 of 2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants