Skip to content

Conversation

@pull
Copy link

@pull pull bot commented Dec 13, 2025

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 8 commits December 12, 2025 14:24
The changes are to `io.c` and `thread.c`.
I changed the API of 2 exported thread functions from `internal/thread.h` that
didn't look like they had any use in C extensions:

* rb_thread_wait_for_single_fd
* rb_thread_io_wait

I didn't change the following exported internal function because it's
used in C extensions:

* rb_thread_fd_select

I added a comment to note that this function, although internal, is used
in C extensions.
…ocks

Previously, the chain_depth>0 version of setlocal blocks did not
update the type of the local variable in the context. This can leave
the context with stale type information and trigger panics like in
[Bug #21772] or lead to miscompilation.

To trigger the issue, YJIT needs to see the same ISEQ before and after
environment escape and have tracked type info before the escape. To
trigger in ISEQs that do not send with a block, it probably requires
Kernel#binding or the use of include/ruby/debug.h APIs.
When debugging the fstring table, I found "UTF-8" to be the most common
interned strings in many benchmarks.

We have a fixed, limited number of these strings, so we might as well permanently
cache their fstrings.
ZJIT: Add stack support for CCalls
@pull pull bot locked and limited conversation to collaborators Dec 13, 2025
@pull pull bot added the ⤵️ pull label Dec 13, 2025
@pull pull bot merged commit 8f81d2b into turkdevops:master Dec 13, 2025
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.

6 participants