Skip to content

[pull] master from ruby:master#1200

Merged
pull[bot] merged 2 commits into
turkdevops:masterfrom
ruby:master
Jul 10, 2026
Merged

[pull] master from ruby:master#1200
pull[bot] merged 2 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jul 10, 2026

Copy link
Copy Markdown

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

luke-gruber and others added 2 commits July 10, 2026 10:12
Added InvokeBlockIseqDirect HIR with codegen. This is a fastpath for
setting up a frame for a block that has an iseq and making a JIT to JIT
call to it. This works for `yield` only and not for `block.call` where `block`
is the `blockparamproxy`.

```
Performance summary:
┌────────────────┬────────────────────────────────┬────────────────────────────┐
│  Block invoke  │ Before (without these changes) │ After (with these changes) │
├────────────────┼────────────────────────────────┼────────────────────────────┤
│ yield (0 args) │ ~30M i/s                       │ 50.4M i/s                  │
├────────────────┼────────────────────────────────┼────────────────────────────┤
│ yield(1, 2)    │ ~30M i/s                       │ 52.7M i/s                  │
└────────────────┴────────────────────────────────┴────────────────────────────┘
```
It is nice to be able to slice out a location in pattern matching
without having to explicitly get the location object and call
slice manually.

Also, construct the response for deconstruct_keys lazily in order
to avoid reifying location objects if we don't have to.

ruby/prism@3024cb55f2
@pull pull Bot locked and limited conversation to collaborators Jul 10, 2026
@pull pull Bot added the ⤵️ pull label Jul 10, 2026
@pull
pull Bot merged commit 0b2b217 into turkdevops:master Jul 10, 2026
1 of 3 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.

2 participants