Skip to content

[pull] master from ruby:master#1155

Merged
pull[bot] merged 15 commits into
turkdevops:masterfrom
ruby:master
Jun 27, 2026
Merged

[pull] master from ruby:master#1155
pull[bot] merged 15 commits into
turkdevops:masterfrom
ruby:master

Conversation

@pull

@pull pull Bot commented Jun 27, 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 : )

nobu and others added 15 commits June 26, 2026 21:53
Emitting a Send in `type_specialize` makes the compiler require more
phases to go and optimize that Send. Instead, in HIR build, emit either
a) a guard or b) a run-time type check that might get specialized away.

Also delete `ObjToString`.
The resulting type of a `GuardType` we prove cannot pass is `Empty`. Any HIR instructions using the type information from the `GuardType` will also see `Empty` and propagate that type through the compiler. Any generated code would not be executable at run time due to the always failing guard, so there's no point in generating it.
An `Empty` value has no representable size. The caller trying to get the size is operating on an unreachable instruction that should have already been removed.
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
Co-authored-by: Jeremy Evans <code@jeremyevans.net>
* ZJIT: Reuse instruction profiling for recompile exits

Deduplicate recompile-exit profiling by sharing the per-instruction
profiling logic used by zjit_* instructions.

Recompile exits now use the materialized CFP state to recover the
current instruction and collect profiles through profile.rs, instead of
passing kind-specific profiling payloads across the C ABI.

* ZJIT: Restore HIR Recompile struct

Keep HIR recompilation metadata as Option<Recompile> instead of a bool.
This preserves a typed extension point for future recompilation policy
without changing the shared recompile-exit profiling path.
Commit 0ea210d renamed ROBJECT_IVPTR to ROBJECT_FIELDS, so it would have
caused compatibility issues anyways. Since there has been no issues, it
means that nobody is using it. We can make this dangerous API private since
no C extension should be using it anyways.
* ZJIT: Add perf symbol for block padding

* ZJIT: Explain HIR-only padding perf symbols
@pull pull Bot locked and limited conversation to collaborators Jun 27, 2026
@pull pull Bot added the ⤵️ pull label Jun 27, 2026
@pull pull Bot merged commit 33ebed7 into turkdevops:master Jun 27, 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.

9 participants