Skip to content

[pull] master from ruby:master#845

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

[pull] master from ruby:master#845
pull[bot] merged 4 commits intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link

@pull pull bot commented Mar 12, 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 : )

kddnewton and others added 4 commits March 12, 2026 10:50
Tells ZJIT to do a side exit or to fail to compile, useful testing and
for bug reports. We are picky about the syntactic form so we can tell
where the call lands early in the compiler pipeline. The `::` prefix
allows us to interpret it without needing to know under what lexical
scope the iseq will run.

Special semantics with ZJIT doesn't interfere with ruby level semantics;
running these methods do nothing in all modes. So it's no problem to
call these without ZJIT.
When lowering polymorphic `opt_send_without_block`, emit at most one branch per receiver type instead of one branch per profile bucket (`class, shape, flags`).

This deduplicates redundant `HasType`/`IfTrue` chains while preserving immediate/heap splits under the same class (for example, `Fixnum`/`Bignum` and `StaticSymbol`/`DynamicSymbol`), reducing branch/codegen overhead without changing dispatch semantics.

Stats diff (`railsbench`):
- `code_region_bytes`: `15,171,584` -> `14,974,976` (`-1.30%`)
- `side_exit_size`: `4,999,792` -> `4,955,020` (`-0.90%`)
@pull pull bot locked and limited conversation to collaborators Mar 12, 2026
@pull pull bot added the ⤵️ pull label Mar 12, 2026
@pull pull bot merged commit b0754fb into turkdevops:master Mar 12, 2026
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.

3 participants