Applied in changeset commit:git|53f7189ff9edda7187fc8c48e520a079d0ea2a26. ---------- [Bug #22224] Ractors, YJIT: Skip re-reporting recorded EP escapes to the JITs (#18176) * [22224] Ractors, YJIT: Skip re-reporting recorded EP escapes ...yaroslavmarkin (Yaroslav Markin)
* [22224] Ractors, YJIT: Skip re-reporting recorded EP escapes to the JITs vm_make_env_each reports every EP escape, and both rb_yjit_invalidate_ep_is_bp and rb_zjit_invalidate_no_ep_escape take the VM lock with a stop-all-Ractors barri...yaroslavmarkin (Yaroslav Markin)
Hi! Fair warning: a significant portion of this bugreport and experimentation/benchmarking was done by an agent. Sorry for the slop, but it was so much faster to benchmark and find a root issue. **Proposed PR: https://github.com/ru...yaroslavmarkin (Yaroslav Markin)
When every element is a String sharing one ASCII-compatible fast-path encoding (UTF-8/US-ASCII/ASCII-8BIT) and the separator is compatible, build the result with a single memcpy pass instead of appending element by element through rb_str...yaroslavmarkin (Yaroslav Markin)
* [Ticket #22094] Speed up Array#join with a byte-copy fast path * Speed up ASCII or UTF-8 Array#join's of strings with fast copyingyaroslavmarkin (Yaroslav Markin)
## Original idea What if we treat `Array#join(" ")`, `Array#join("\n")` and `Array#join(";")` as hot paths (as many, if not _most_ uses of `Array#join` in the wild), and see if there is anything to optimize for a single-character ASCI...yaroslavmarkin (Yaroslav Markin)