Activity
From 03/12/2026 to 03/18/2026
Today
- 05:44 PM Revision b2fc406a (git): ZJIT: Remove rb_zjit_writebarrier_check_immediate
- 05:44 PM Revision 35b9f9dc (git): ZJIT: Don't call write barrier if the object is an immediate
- In addition to compile-time knowledge, we can also (now that the global
regalloc has landed) check at run time if the value being stored is a
heap object. - 05:27 PM Revision 896e5c48 (git): Update default gems list at e74e3e1120871023c85d1d1afd7070 [ci skip]
-
05:26 PM Revision e74e3e11 (git): [ruby/json] Release 2.19.2
- https://github.com/ruby/json/commit/54f8a878ae
-
05:19 PM Revision 0636592a (git): [ruby/json] Fix a format string injection vulnerability
- In `JSON.parse(doc, allow_duplicate_key: false)`.
https://github.com/ruby/json/commit/393b41c3e5 -
04:19 PM Revision 00a31a46 (git): ZJIT: Set up Launchable for ZJIT CI jobs (#16444)
-
04:14 PM Revision fc480c1c (git): ZJIT: Increase SYNTAX_SUGGEST_TIMEOUT for ZJIT CI from 5 to 30 (#16443)
- ZJIT CI runs with --zjit-call-threshold=1 which JIT-compiles every
function on first call, adding significant overhead. The 5-second
timeout for test-syntax-suggest's "does not timeout on massive files"
test is too tight under this confi... -
03:37 PM Feature #21932: `MatchData#get_int`
- Thanks for the explanations.
naruse (Yui NARUSE) wrote in #note-9:
> In this use case, interpreting "0x" prefix is not useful
It could be useful, but one could workaround that with `/0x(\h+)/` instead of `/(0x\h+)/`.
Leading 0 (octal)... -
10:09 AM Feature #21932: `MatchData#get_int`
- Eregon (Benoit Daloze) wrote in #note-8:
> I think returning 0 when the group isn't parseable as a number seems bad behavior.
> ...
There is two reason:
1. there are two major method to parse integer in Ruby: to_i and Integer().
*... -
08:37 AM Feature #21932: `MatchData#get_int`
- I think returning 0 when the group isn't parseable as a number seems bad behavior.
At least if I would use this method, I would expect two things of it:
* It returns the Integer value of that group, without needing `Integer($N)`
* I... -
02:44 AM Feature #21932: `MatchData#get_int`
- Here is a supplement to Matz's decision.
This method will basically follow the behavior of `String#to_i`.
The base can be specified as the second argument:
```ruby
"2024" =~ /(\d+)/
$~.integer_at(1) # => 2024 (default: bas... - 01:27 PM Revision 5c92d3f9 (git): [ruby/rubygems] Lock the checksum of Bundler itself in the lockfile:
- - ### Problem
With the Bundler autoswitch feature, system Bundler may install
a `bundler.gem` that matches the Gemfile.lock.
The `bundler.gem` that gets downloaded is like any other gems,
but its treated differently (it doesn't ... -
12:59 PM Feature #20215: Introduce `IO#readable?`
- Id like to second this idea. The incorrect usage of eof? in the net-http lib has caused many debugging hours. Right now there is a long-standing bug in net-http that was very tricky to find due to the ambiguous nature of eof?. Some detai...
-
12:23 PM Revision 02982ef5 (git): Manually sync prism
- 11:37 AM Revision 3b828ab9 (git): [ruby/rubygems] Store the version of git at the class level:
- - ### Problem
For each git gems in a Gemfile a new Git source object is
instantiated. Each git source will make a system call to check the
version of git. This is inefficient and we lose ~50ms on each system
calls.
### Soluti... - 10:55 AM Revision 45dbc5a4 (git): [ruby/rubygems] Update the `bundle config --help` man page:
- - Clarify what `BUNDLE_JOB` is used for and that it affects the
number of parallel downloads.
https://github.com/ruby/rubygems/commit/36f572b4db - 10:55 AM Revision a0efe151 (git): [ruby/rubygems] Normalize the number of workers:
- - ### Problem
I'd like to normalize the number of workers when downloading gems
and use the `BUNDLE_JOBS` configuration (or default to
`Etc.nprocessors`).
Right now the number of workers when doing parallel work seems a bit
ra... -
09:43 AM Revision 8b147ba5 (git): [ruby/prism] Fix assignments
- (https://github.com/ruby/prism/pull/4012)
Useless comparisons, probably typos.
https://github.com/ruby/prism/commit/7c1927efd6 -
07:58 AM Revision cadc6196 (git): [ruby/rubygems] Fix uninstall_gem to set GEM_HOME instead of install_dir
- Gem::Uninstaller with install_dir uses File.realpath for @gem_home but
not for the specification_record path lookup, causing path mismatches
on some CI environments. Instead, temporarily set GEM_HOME and call
Gem.clear_paths to mimic the... -
07:58 AM Revision 3385f318 (git): [ruby/rubygems] Use env shebang for in-process gem installation wrappers
- With load_relative enabled (ruby-core CI), Gem::Installer generates
wrapper scripts with a bash prolog (#!/bin/sh) when wrappers: true is
set. Bundler's directly_loadable? only recognizes Ruby shebangs, so
these shell wrappers cause "com... -
07:58 AM Revision 77d6f3af (git): [ruby/rubygems] Simulate platform for in-process gem installation
- When install_gem runs Gem::Installer in-process, BUNDLER_SPEC_PLATFORM
is not applied because hax.rb only runs in subprocesses. Add
with_simulated_platform helper that mirrors hax.rb's platform override
for in-process operations, and res... - 07:58 AM Revision 69773de5 (git): [ruby/rubygems] Refactor rspec gem command to use new helper methods for uninstalling and listing installed gems
- https://github.com/ruby/rubygems/commit/185964f9b1
-
07:22 AM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
- > We usually don't backport performance improvements, but I think we should make an exception.
IMO the performance degradation is severe enough that I consider it a bug, and that is why I marked it for backport. So I don't really see ... -
12:12 AM Bug #21856 (Closed): Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
- I merged my proposed design, which should restore Ruby 3.4's performance https://github.com/ruby/ruby/pull/16363 (forgot to tag this issue in the commit message, sorry)
I'm going to look into backporting this to Ruby 4.0. We usually d... -
06:31 AM Feature #21951: Lazy load error extension gems to speed up boot time
- Some libraries implicitly depend on `did_you_mean` and other gems being loaded at boot, calling their class methods (e.g., `DidYouMean::SpellChecker`) without an explicit `require`.
I tried to switch from a simple deferred `require` a... - 04:53 AM Revision 95af0867 (git): ZJIT: Inline String#!= by negating String#== (#16391)
- Looking at the profiling results below, we can likely inline `String#!=` similarly to how we already handle `Integer` (and some `BasicObject#!=` cases).
As Max mentioned in [the original issue](https://github.com/Shopify/ruby/issues/884... -
04:31 AM Revision 8581ba91 (git): Fix race condition in test_condvar_wait_and_broadcast (#16442)
- Replace `sleep 0.1` with `Thread.pass until threads.all?(&:stop?)`
to ensure all worker threads have entered `condvar.wait` before
broadcasting. The fixed sleep was insufficient on slow CI environments
(e.g. Windows 2025), causing broadc... -
04:24 AM Revision 314c5fd0 (git): auto_review_pr: Add a workflow_dispatch trigger
-
04:19 AM Revision 283d6cba (git): auto_review_pr: Avoid leaving a review on dependabot PRs
-
04:17 AM Revision f9e852d9 (git): auto_review_pr: suggest re-filing PRs from fork branches (#16446)
- PRs filed from branches in ruby/ruby (rather than forks) make it
harder to manage the bi-directional mirror with git.ruby-lang.org.
Add an auto-review comment asking contributors to re-file from a fork.
Refactor #review into separate me... -
04:09 AM Revision d803c1d1 (git): ZJIT: Assert that `out` doesn't use MemBase::StackIndirect
-
04:09 AM Revision 0368760d (git): ZJIT: Stop passing scratch reg for lowering out in x86_64
-
03:54 AM Revision c1d4caa4 (git): [ruby/rubygems] Prevent tests from modifying user's global git config
- Set GIT_CONFIG_GLOBAL and GIT_CONFIG_NOSYSTEM environment variables
in the test suite setup to isolate git configuration when Git >= 2.32
is available. This prevents test runs from accidentally polluting the
developer's real git config.
... -
03:54 AM Revision dfd51c4c (git): [ruby/rubygems] Add git version filter for spec metadata
- Use RequirementChecker to filter specs tagged with git version
requirements (e.g., `git: ">= 2.28.0"`), matching the existing
pattern used for rubygems version filtering.
https://github.com/ruby/rubygems/commit/d157405217
Co-Authored-B... - 02:38 AM Revision 9dc87b19 (git): Bump the github-actions group across 1 directory with 2 updates
- Bumps the github-actions group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `ruby/setup-ruby` from 1.294.0 to ... -
02:36 AM Misc #21956: DevMeeting-2026-05-13
- Note: This is the ticket for the meeting scheduled *after* the dev meeting co-located with RubyKaigi (2026-04-21). Until then, please list agenda items on https://bugs.ruby-lang.org/issues/21916.
-
02:34 AM Misc #21956 (Open): DevMeeting-2026-05-13
- # The next dev meeting
**Date: 2026/05/13 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and o... -
02:32 AM Misc #21877 (Closed): DevMeeting-2026-03-17
- The next dev meeting will be held in-person, co-located with RubyKaigi. See https://bugs.ruby-lang.org/issues/21916
-
02:12 AM Revision 41978d83 (git): [ruby/rubygems] Fix and improve tests for source URI trailing slash normalization
- - Fix setup_fake_source double-slash bug: normalize URI before
registering spec data to prevent URL mismatch in load_specs
- Fix test_execute_add/append_https_rubygems_org: these tests were
incorrectly expecting TermError due to the ... -
02:12 AM Revision c8c57592 (git): [ruby/rubygems] Refactor source URI normalization in sources command
- - Rename add_trailing_slash to normalize_source_uri to better reflect
that it also removes duplicated trailing slashes
- Extract build_source and build_new_source to eliminate duplicated
source creation pattern across add_source, app... - 02:12 AM Revision 63818352 (git): [ruby/rubygems] spec: Add missing bad uri test for prepend for gem sources
- https://github.com/ruby/rubygems/commit/376bcdf430
- 02:12 AM Revision ec7bdd63 (git): [ruby/rubygems] fix: Ensure trailing slash is added to source URIs added via gem sources
- GitHub's private gem registry expects the first path segment after the host
to represent the namespace, typically the organization or user name. [1]
When adding a source with
```
gem sources --add https://user:password@rubygems.pkg.gi... -
12:44 AM Revision 2ebe39fd (git): Revert "Update bundled_gems"
- This reverts commit f6201015a95b86c1b7eb4ce6a3febfade4779ac2.
- 12:15 AM Revision 7f30233f (git): [DOC] Update bundled gems list at f6201015a95b86c1b7eb4ce6a3febf
-
12:07 AM Revision f6201015 (git): Update bundled_gems
03/17/2026
-
11:27 PM Bug #21824: performance regression in regexp matching after update to 4.0
- @khasinski Looks like this was not backported to the branch from which 4.0.1/4.0.2 were packaged?… :\
-
11:07 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
- > Nokogiri has a "decorator" feature
I figured as much when I investigated the problem. Now that John found a fix, it will probably be back to OK performance in 4.0.3, but I think it would be valuable to find a better API in Nokogiri... -
10:25 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
- 👋 I'm the maintainer of Nokogiri and Loofah.
Nokogiri has a "decorator" feature that allows modules to be mixed into node objects dynamically. When a document has decorators registered, Nokogiri calls `node.extend(mod)` on each `Node`... -
09:37 PM Bug #21856: Massive performance degradation of `rb_obj_free` for `T_CLASS` since Ruby 4.0
- byroot (Jean Boussier) wrote in #note-1:
> I'm able to repro on my machine, even though the different isn't quite as bad (more like 30% slower).
> ...
We have just encountered this issue ourselves and while it is indeed not quite bad o... -
09:56 PM Feature #21869: Add receive_all Method to Ractor API for Message Batching
- ko1 (Koichi Sasada) wrote in #note-8:
> If it returns `[]` always, I think we don't need to introduce it.
I've updated pr. The limit parameter behaves as fallow:
1. ```limit == nil```: returns all messages in the queue, or blocks if... -
10:18 AM Feature #21869: Add receive_all Method to Ractor API for Message Batching
ko1 (Koichi Sasada) wrote in #note-8:
> For this purpose, it is possible to introduce another parameter such as `timeout: 0`.
> ...
LGTM, I’ll update the PR with this suggestion.-
09:42 PM Revision a2531ba2 (git): Simplify subclasses list, remove from Box
- Currently we maintain the subclasses list for two separate purposes (we essentially have to different relationships we're putting into the same list):
1. On a T_MODULE, we track the T_ICLASSes created to include it into
other classes... -
09:38 PM Revision 563fc855 (git): YJIT: [DOC] Fix `RubyVM::YJIT.runtime_stats` symbols
- Reported-by: Koichi Sasada <ko1@atdot.net>
-
09:20 PM Revision b5432bdb (git): [ruby/rubygems] Fix retry spec to restore default_base_delay for backoff test
- The "is enabled by default with 1 second base delay" test relies on
default_base_delay being 1.0, but spec_helper sets it to 0 globally.
Temporarily restore it to 1.0 within the test.
https://github.com/ruby/rubygems/commit/427525d4a6
... - 09:20 PM Revision eeda69b3 (git): [ruby/rubygems] Add exponential backoff to bundler retries
- https://github.com/ruby/rubygems/commit/bbaad86665
-
09:02 PM Feature #21858: `Kernel#Hash` considers `to_h` too
- matz (Yukihiro Matsumoto) wrote in #note-9:
> Feeding `Hash()` with a method that may raise depending on runtime content makes the function less predictable, not more.
It's important to note that this is **already the case**; if you pas... -
08:19 AM Feature #21858 (Feedback): `Kernel#Hash` considers `to_h` too
- The consistency argument is noted, but I have reservations about
introducing `to_h` into `Hash()`.
Unlike `to_ary`/`to_a` or `to_int`/`to_i`, `to_h` has an unusual
property: it is defined on Enumerable and Array, but whether it
suc... -
06:33 PM Revision b7e4d57a (git): ZJIT: linear scan register allocator (#16295)
- * add rpo to LIR cfg
* add instruction ids to instructions along with start / end indexes on blocks
* Analyze liveness of vregs
* We don't need to check kill set before adding to gen set
Since we're processing instructions in reverse... -
05:20 PM Revision f7816b05 (git): win32/configure.bat: Add `--with-dump-ast` option
-
05:20 PM Revision af85de87 (git): Do not update the `dump_ast` specified in the `configure` options
-
04:35 PM Revision 968b999f (git): [PRISM] Fix ASAN reading off end of strpbrk cache
- 04:00 PM Revision 2709a3dd (git): Ensure fiber stack is freed in all cases, if the fiber is terminated. (#16416)
- [Bug #21955]
-
03:29 PM Bug #21955: `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
- backport PR for 4.0: https://github.com/ruby/ruby/pull/16422
-
09:19 AM
Bug #21955 (Closed): `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
- Applied in changeset commit:git|dc1777d01770ab62ec99ff6fa4cf622098f44968.
----------
Ensure fiber stack is freed in all cases, if the fiber is terminated. (#16416)
[Bug #21955] -
09:17 AM Bug #21955 (Closed): `Fiber#transfer`: machine stack not released when fiber terminates, causing `FiberError: can't set a guard page`
- When a fiber terminates (falls off the end of its block, or raises an unhandled exception) after being reached via `Fiber#transfer`, its machine stack is **not** returned to the fiber pool. The stack is only freed when the `Fiber` object...
-
03:17 PM Feature #19315: Lazy substrings in CRuby
- FWIW, `StringValueCStr()` already exists and checks for no `\0` bytes and implies a terminating `\0`.
It still seems too risky to change `RSTRING_PTR()` to not terminate though.
FWIW, TruffleRuby already has lazy substrings and alway... -
03:14 PM Revision 5026acfb (git): Do not use GCC-specific syntax for lookup tables
-
03:14 PM Revision ec3162ca (git): Fix infinite loop in parser_lex_magic_comment
-
03:14 PM Revision e09ca77b (git): Update depend with new Prism structure
-
03:14 PM Revision 84611ce5 (git): Update constant pool API calls
-
03:14 PM Revision 677286e4 (git): [ruby/prism] Ensure allocations to the constant pool are through the arena
- https://github.com/ruby/prism/commit/f5ae7b73ee
-
03:14 PM Revision c133e047 (git): [ruby/prism] More correctly detect SIMD on MSVC
- https://github.com/ruby/prism/commit/5fe0448219
-
03:14 PM Revision 9d820466 (git): [ruby/prism] Fix up rebase errors
- https://github.com/ruby/prism/commit/b2658d2262
-
03:14 PM Revision bf33d7f1 (git): [ruby/prism] Cache strpbrk lookup tables
- https://github.com/ruby/prism/commit/46656b2fd5
-
03:14 PM Revision 169ba06f (git): [ruby/prism] Use a bloom filter to quickly reject local lookups
- https://github.com/ruby/prism/commit/fc0ec4c9f4
-
03:14 PM Revision 9a76883f (git): [ruby/prism] Fix a bug where we removed the \r warning
- https://github.com/ruby/prism/commit/559f24fae0
-
03:14 PM Revision 0666ceab (git): [ruby/prism] SIMD/SWAR for strpbrk
- https://github.com/ruby/prism/commit/c464b298aa
-
03:14 PM Revision 120c9ed2 (git): [ruby/prism] Include string in constant pool entry to avoid chasing pointer
- https://github.com/ruby/prism/commit/dcb2e8c924
-
03:14 PM Revision c746def2 (git): [ruby/prism] Optimize constant pool hash for short strings
- https://github.com/ruby/prism/commit/a52c2bd2c0
-
03:14 PM Revision 65518643 (git): [ruby/prism] Only dispatch to lex_optional_float_suffix when it is possible
- https://github.com/ruby/prism/commit/2a1dc7930e
-
03:14 PM Revision f042a3c2 (git): [ruby/prism] Lex simple integer values as we are lexing
- https://github.com/ruby/prism/commit/20e626ada5
-
03:14 PM Revision 5ea721f6 (git): [ruby/prism] Inline three more functions, and lower the hash threshold for locals
- https://github.com/ruby/prism/commit/fbcd3fc69e
-
03:14 PM Revision 45f76d2d (git): [ruby/prism] Potentially skip whitespace scanning for speed
- https://github.com/ruby/prism/commit/b5b88bae80
-
03:14 PM Revision 648d46b0 (git): [ruby/prism] Avoid redundant whitespace scanning in magic comment lexing
- https://github.com/ruby/prism/commit/a14431c2f1
-
03:14 PM Revision a91ae84b (git): [ruby/prism] Inline pm_node_list_append, pm_char_is_whitespace, and pm_char_is_inline_whitespace
- https://github.com/ruby/prism/commit/83f54c2dc2
-
03:14 PM Revision dfad9e8c (git): [ruby/prism] Force the allocation to be inlined
- https://github.com/ruby/prism/commit/dfdc930456
-
03:14 PM Revision c6e7336b (git): [ruby/prism] Pre-size arena to avoid unnecessary growth
- https://github.com/ruby/prism/commit/f94fe6ba02
-
03:14 PM Revision 345b90b7 (git): [ruby/prism] Avoid unnecessary zero-ing of memory
- https://github.com/ruby/prism/commit/bfa7692715
-
03:14 PM Revision 81f6ec4e (git): [ruby/prism] Fast-paths for ASCII-only identifiers
- https://github.com/ruby/prism/commit/fb526a8243
-
03:14 PM Revision de448eab (git): [ruby/prism] Scan forward through inline whitespace to avoid writing to parser->current.end continuously
- https://github.com/ruby/prism/commit/c1ad25ebf8
-
03:14 PM Revision b0f68d70 (git): [ruby/prism] Small optimization for parser_lex_magic_comment
- https://github.com/ruby/prism/commit/e0708c495c
-
03:14 PM Revision 9fe3151e (git): [ruby/prism] Speed up the constant hash function
- https://github.com/ruby/prism/commit/1dd985306f
-
03:14 PM Revision ac38cffd (git): [ruby/prism] Use the parser arena for the constant pool
- https://github.com/ruby/prism/commit/390bdaa1f1
-
03:14 PM Revision 4bacd06b (git): [ruby/prism] Use an arena for parser metadata
- https://github.com/ruby/prism/commit/dadeb7e679
-
02:50 PM Feature #21520 (Closed): Feature Proposal: Enumerator::Lazy#tee
- Applied in changeset commit:git|3903419deeece358c31b3da9afc4a0250139a5e4.
----------
[Feature #21520] Rename Enumerator::Lazy#tee to #tap_each -
08:59 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- Thanks for the comment. Since the PR was already merged recently, I will make a new PR to address the name change from `tee` to `tap_each`.
-
08:39 AM Feature #21520: Feature Proposal: Enumerator::Lazy#tee
- After reconsideration, I think `tap_each` is a better name than `tee` for this method.
`tee` is familiar to Unix users, but Python's `itertools.tee` has a very different meaning (splitting an iterator into multiple independent iterato... -
02:50 PM Revision 3903419d (git): [Feature #21520] Rename Enumerator::Lazy#tee to #tap_each
-
09:46 AM Feature #21795: Methods for retrieving ASTs
- mame (Yusuke Endoh) wrote in #note-9:
> When new syntax is introduced to the Ruby master branch, the built-in `prism.c` is updated immediately. In this scenario, if we attempt to retrieve `#ast` using the node definitions from a release... -
07:43 AM Feature #21795: Methods for retrieving ASTs
- I have two concerns before we move forward.
On the name AST
I'm not sure `ast` is the right name. The nodes returned by Prism retain concrete information such as positions, whitespace, and comments, making them closer to a Concrete... -
09:46 AM Bug #21921: Hash inconsistent ==, >=, <= behavior
- Not many people use `Hash` inclusion operators, and I doubt anyone expects them to behave consistently when `compare_by_identity` is involved. Rather than raising an exception, I think returning `nil` from `==`, `<=` and `>=` whenever ei...
-
09:40 AM Feature #21932: `MatchData#get_int`
- I agree with adding `integer_at(n)` to `MatchData`, and `StringScanner` too (#21943).
Matz.
-
09:38 AM Feature #17056: Array#index: Allow specifying the position to start search as in String#index
- I think it's good to add an offset: keyword argument to `Array#index` and `Array#rindex`, for consistency with `String#index` and `String#rindex`.
As for `Array#find_index`, I think we should add `offset:` there as well, keeping it in... - 09:18 AM Revision dc1777d0 (git): Ensure fiber stack is freed in all cases, if the fiber is terminated. (#16416)
- [Bug #21955]
-
08:52 AM Revision 2602e3a9 (git): [ruby/net-http] Add existing RBS interface tests from ruby/rbs repo
- https://github.com/ruby/net-http/commit/2842ca5539
-
08:47 AM Feature #21929: Add configure script options for instrumenting Rust builds
- While the MR allows to provide the flags in some manner, which is certainly a big part, in the PR there were mentioned some flags that are important to upstream to keep. See comment https://github.com/ruby/ruby/pull/15695#discussion_r266...
-
08:33 AM Feature #6012: Proc#source_location also return the column
- Right, I will make a proposal for `Ruby::SourceLocation`/`Ruby::CodeLocation` or so.
I hope it can be approved quickly without taking more time. -
08:05 AM Feature #6012: Proc#source_location also return the column
- Thank you, @eregon, for the thorough analysis and for pushing this feature forward with such persistence over the years.
I have reconsidered my position. Although I approved this change, and it has been in master for a year, I now bel... -
08:32 AM Revision 82b56a28 (git): [ruby-core:122847] Implements `Enumerator::Lazy#tee`
-
08:30 AM Feature #21875 (Closed): Handling of trailing commas in lambda parameters
-
06:47 AM Feature #21875: Handling of trailing commas in lambda parameters
- OK, I agree. Keep as it is. We cannot ignore the semantic difference between `|a,|` and `|a,b,|`.
Matz.
-
08:11 AM Feature #21822 (Rejected): Expose Return Value in the ensure Block
- Thank you for the feedback. I understand the aesthetic appeal, but "cleaner" is subjective, and the existing pattern is already idiomatic Ruby with no real cognitive overhead.
More importantly, "purely additive" does not mean cost-fre... -
07:44 AM Revision eb460a12 (git): [ruby/rubygems] Rename full_clone? to shallow? for clarity
- The predicate checks whether depth is set, which applies equally to
clone and fetch contexts. Rename to shallow? so the intent reads
naturally in both places.
https://github.com/ruby/rubygems/commit/7e47f408c3
Co-Authored-By: Claude Op... -
07:44 AM Revision c40a29f7 (git): [ruby/rubygems] Retry git fetch without --depth for dumb HTTP transport
- Dumb HTTP git servers do not support shallow capabilities, causing
`git fetch --depth` to fail. The retry-without-depth logic already
existed for clone but was missing for fetch.
Also refactor clone_needs_extra_fetch? to rebuild the com... -
06:55 AM Bug #21954 (Closed): NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
- Fixed at https://github.com/ruby/ruby/commit/8ecf28f9384207590be73d5f2a95859cff9c526a
-
05:23 AM Bug #21954: NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
- @jeremyevans0 Thank you for your report. I confirmed this.
This issue was introduced RubyGems [4.0.5](https://github.com/ruby/rubygems/releases/tag/v4.0.5).
I will fix this at https://github.com/ruby/rubygems/pull/9404 and release ... -
01:42 AM Bug #21954 (Assigned): NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
-
01:34 AM Bug #21954 (Closed): NoMethodError instead of Gem::LoadError on gem activation problem in Ruby 4.0.2
- I'm seeing a regression in Ruby 4.0.2 when there is a gem activation problem.
Install two versions of a gem, where one version has a file the other doesn't. One example here is rack:
```
$ gem install rack --version '< 3'
$ gem i... -
06:55 AM Revision 8ecf28f9 (git): [ruby/rubygems] Fix NoMethodError in Gem.try_activate when activation conflicts occur
- When `find_unloaded_by_path` returns nil, the subsequent
`spec.name` call raises NoMethodError because `spec` has been
overwritten. Save the gem name before reassigning `spec`.
Fixes https://bugs.ruby-lang.org/issues/21954
https://gith... - 06:11 AM Revision e2a705e5 (git): Bump the github-actions group across 1 directory with 3 updates
- Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [github/codeql-action](https://github.com/github/codeql-action) and [taiki-e/install-action](https://github.com/taik...
-
06:03 AM Feature #21861: C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc
- > Is it intentional to change the word orders?
Yes it it, to match the C23 names. The current names are private, we can easily rename them. -
05:50 AM Feature #21861: C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc
- byroot (Jean Boussier) wrote:
> I would like to expose these sized APIs to C extensions, so that they can benefit from it as well:
> ...
Current names are `ruby_sized_xfree` and so on.
Is it intentional to change the word orders? -
05:41 AM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
- The warning for overlapping `\p{...}` classes should be removed. The original intent was to catch mistakes like `/[:lower:]/`, but overlapping Unicode properties are not a mistake. They are expected and intentional. A warning with no act...
-
04:30 AM Revision 46f43eb4 (git): Use repository_dispatch for docker-images in publish workflow
- Switch from workflow_dispatch API to repository_dispatch API for
triggering docker-images builds, consistent with all other dispatch
calls in this workflow. This avoids requiring Actions:Write permission
on the personal access token.
Co... -
04:13 AM Misc #21924 (Closed): Register a Maven namespace for JVM-related libraries
- I have not published a full release, but I have been able to push snapshots and it looks like everything is working. Thank you for your help!
-
04:06 AM Misc #21924: Register a Maven namespace for JVM-related libraries
- @headius Were you able to publish to Maven?
-
02:24 AM Revision 3b86c937 (git): Add ruby_version_is guard to CVE-2019-8322 spec for changing displayed message
- 12:26 AM Revision 3092f4fe (git): [ruby/rubygems] fix: include owner role in `gem owner`
- https://github.com/ruby/rubygems/commit/d6364956b6
-
12:21 AM Revision 60e8042e (git): [ruby/rubygems] Refactor validate_tag! to enforce permitted_classes consistently with Psych
- Align YAMLSerializer's `permitted_classes` validation with Psych's whitelist
semantics: an empty `permitted_classes` list denies all tagged classes, matching
`Psych::ClassLoader::Restricted` behavior.
- Rename `@permitted_tags` to `@per... - 12:21 AM Revision 8723c8b2 (git): [ruby/rubygems] Fix Bundler crashing when installing very old gems:
- - ### Problem
There is a regression where bundler can longer install gems that
were packaged a long time ago, like the [memoize gem](https://rubygems.org/gems/memoize).
Bundler will crash with such error:
```
Installing memo...
03/16/2026
-
11:49 PM Revision 4c6c02d8 (git): fix invalid nodoc comment of Pathname#plus
-
11:19 PM Revision b01ca60e (git): Allow auto-sync from Prism ruby-4.0
-
10:56 PM Revision 6721ec26 (git): Include free_immediately: false in heap dumps
- This adds "free_immediately: false" to the heap dump for any T_DATA
which doesn't specify RUBY_TYPED_FREE_IMMEDIATELY. These are the objects
which end up as T_ZOMBIE and will have their dfree callback deferred to
later when the program i... -
10:56 PM Feature #21869: Add receive_all Method to Ractor API for Message Batching
- synacker (Mikhail Milovidov) wrote in #note-4:
> Yes, it blocks if the queue empty. The method ```receive_all``` accepts a limit parameter:
> ...
The parameter `limit` is not in the description. Let me clarify `limit == 0`. In above qu... -
10:47 PM Revision d3da9fec (git): v4.0.2
-
10:46 PM Revision 3fd1181a (git): Bump Prism to v1.8.1
-
09:59 PM Feature #21929 (Feedback): Add configure script options for instrumenting Rust builds
- It's hard for me to tell what's desired beyond the already merged PR you proposed. It seems to be about some mechanism for flag overriding for development builds that use `cargo`, but sort of by definition packaging is not a great fit fo...
-
06:29 AM Feature #21929: Add configure script options for instrumenting Rust builds
- @alanwu Can we close this? https://github.com/ruby/ruby/pull/15695 is already merged.
-
09:23 PM Revision b1220ac5 (git): iseq.c: Use an embedded set table in rb_estimate_iv_count
-
09:23 PM Revision 8982de2d (git): Embed vm->ci_table
-
09:23 PM Revision 0f109203 (git): Embed rb_ractor_pub.targeted_hooks
-
07:53 PM Revision 14eb0831 (git): Speedup repeated calls to `rb_gccct_clear_table`
- Profiling of `ruby --disable-all -e 1` shows between 5 and 10%
of the time is spent in `_platform_memset`, called from `rb_gccct_clear_table()`,
itself called from `clear_method_cache_by_id_in_class()`.
Which makes sense, during boot we... -
07:24 PM Bug #21925: Prism misparses standalone "in" pattern matching in "case/in"
- ruby_4_0 commit:b5a768b666f61a861449d9ee287cb0a3e05bbea8.
-
07:24 PM Bug #21674: Possible regression in return case in statement
- ruby_4_0 commit:b5a768b666f61a861449d9ee287cb0a3e05bbea8.
-
07:24 PM Bug #21946: `and?` predicate confused for leading `and` keyword
- ruby_4_0 commit:83c261f30bd43dc3465c0026b96e79af585fdfab.
-
07:24 PM Bug #21927: Prism: misleading error message for forwarding in lambda argument
- ruby_4_0 commit:e7d2828fb677874fb425e6129e0c4c20acc0e1dd.
-
07:24 PM Bug #21097: `x = a rescue b in c` and `def f = a rescue b in c` parsed differently between parse.y and prism
- ruby_4_0 commit:6b47e3f82cfb52d41fef8882d7e132f43a7611d6.
-
07:24 PM Revision 6b47e3f8 (git): [ruby/prism] Fix not binding power in endless methods [Backport #21097]
- Change rescue modifier binding power from PM_BINDING_POWER_COMPOSITION
to PM_BINDING_POWER_MATCH + 1, so that `x = a rescue b in c` is parsed
as `(x = (a rescue b)) in c` and `def f = a rescue b in c` is parsed
as `(def f = (a rescue b))... -
07:03 PM Bug #21880: The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
- ruby_4_0 commit:901966d7627e89e1ee6e0e37f92e8ac8c0e6e3da.
-
06:18 AM Bug #21880 (Closed): The ultra_safe mode of pstore bundled with Ruby 4.0 is broken.
-
07:02 PM Revision 901966d7 (git): Update pstore to 0.2.1 [Backport #21880]
- Fix ultra_safe mode of pstore bundled with Ruby 4.0.
-
06:57 PM Bug #21926: Thread#value on popen3 wait thread hangs in finalizer
- ruby_4_0 commit:a601b899a35c796775309dca01a6d5e64be14c44 merged revision(s) commit:08372635f7ec09f7115bd254246ebd637499651c.
-
06:57 PM Bug #21947: `Timeout.timeout` doesn't use `Timeout::ExitException` when Fiber scheduler is in use.
- ruby_4_0 commit:f808ff5fc15690338dcb6530e4d3df760d8721f3 merged revision(s) commit:f315d250b44e75a1a69f4a05b293dcc701377689.
-
06:57 PM Bug #21945: Ripper lexes newline between identifier and `and?` as ignored newline
- ruby_4_0 commit:1d3581e18a689f0d392686283e340058ac468ffd merged revision(s) commit:55694ad7efc3f8dc6d5c7aefa60ded4c303ed6cf.
-
06:57 PM Bug #21941: Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
- ruby_4_0 commit:8466e93b1d6eb85ad5952ab3a10575fa453e77e2.
-
05:44 PM Bug #21941 (Closed): Local variable becomes nil when YJIT enabled mid-method with fork/signal/ensure
- Applied in changeset commit:git|8f98abfc46d48c84db2b1408fc8f14b240ec05fd.
----------
YJIT: Fix not reading locals from `cfp->ep` after `YJIT.enable` and exceptional entry
Fix for [Bug #21941].
In case of `--yjit-disable`, YJIT only st... -
06:57 PM Revision a601b899 (git): merge revision(s) 08372635f7ec09f7115bd254246ebd637499651c: [Backport #21926]
- Fix race condition right after ubf registration
Fixes [Bug #21926] -
06:56 PM Revision f808ff5f (git): merge revision(s) f315d250b44e75a1a69f4a05b293dcc701377689: [Backport #21947]
- [ruby/timeout] Compatibility with Fiber scheduler.
(https://github.com/ruby/timeout/pull/97)
[Bug #21947] -
06:55 PM Revision 1d3581e1 (git): merge revision(s) 55694ad7efc3f8dc6d5c7aefa60ded4c303ed6cf: [Backport #21945]
- [Bug #21945] Correctly handle `and?` and similar
-
06:36 PM Bug #21917: Unable to build 4.0.1 on AIX 7.2
- ruby_4_0 commit:0d845e4a071f67de40e1151cafb419c7aba87050 merged revision(s) commit:361644c0cce3235e9cc6724994c6b5711deb10b8.
-
06:35 PM Revision 0d845e4a (git): merge revision(s) 361644c0cce3235e9cc6724994c6b5711deb10b8: [Backport #21917]
- [PATCH] [Bug #21917] Fix build on AIX
- 06:04 PM Revision 06957d7b (git): ZJIT: Fix empty doc comments for INDUCE_*_SERIAL statics
- 06:04 PM Revision 471b68ba (git): ZJIT: Add induce_breakpoint! compiler directive
-
06:03 PM Revision 8466e93b (git): YJIT: Fix not reading locals from `cfp->ep` after `YJIT.enable` and exceptional entry
- [Backport #21941]
In case of `--yjit-disable`, YJIT only starts to record environment
escapes after `RubyVM::YJIT.enable`. Previously we falsely assumed that
we always have a full history all the way back to VM boot. This had YJIT
insta... -
05:55 PM Revision 77b5ab1f (git): ZJIT: Add an option to --zjit-dump-asm to dump code to a folder (#16389)
- ZJIT: Add an option to --zjit-dump-disasm to dump code to a folder
This commit adds an option to `--zjit-dump-disasm` so that you can dump
compiled code to a folder (similar to the behavior of yjit).
For example:
```
$ ruby --zjit-dum... - 05:45 PM Revision cfe7565f (git): [ruby/rubygems] Introduce a priority queue:
- - ### Problem
In https://github.com/ruby/rubygems/pull/9381, I explained the
issue about the "tail latency".
TL;DR When a gem with a native extensions is downloaded, the sooner
we starts compiling, the sooner it gets installed.... -
05:43 PM Revision 8f98abfc (git): YJIT: Fix not reading locals from `cfp->ep` after `YJIT.enable` and exceptional entry
- Fix for [Bug #21941].
In case of `--yjit-disable`, YJIT only starts to record environment
escapes after `RubyVM::YJIT.enable`. Previously we falsely assumed that
we always have a full history all the way back to VM boot. This had YJIT
i... -
05:20 PM Revision bbf00cea (git): ZJIT: introduce a BreakPoint instruction to HIR (#16390)
- [ZJIT]: introduce a BreakPoint instruction to HIR
It's nice for debugging to be able to emit a breakpoint from HIR. I
would like to introduce this instruction so that we can do that. -
02:04 PM Revision 53351a43 (git): Embed vm->static_ext_inits
-
02:04 PM Revision 086c53da (git): Embed vm->unused_block_warning_table
-
02:04 PM Revision 08e03af5 (git): Embed vm->overloaded_cme_table
-
02:04 PM Revision caef1244 (git): Embed vm->negative_cme_table id_table
-
02:04 PM Revision 2003835d (git): Embed the vm->constant_cache id_table
-
02:04 PM Revision cb55f334 (git): Expose struct rb_id_table to allow embedding
-
01:37 PM Bug #21940: Ruby::Box: `$_` returns stale value due to gvar_tbl caching
- At last week's Asakusa.rb, I realized that `$~` was facing a similar issue. I've also made the necessary fixes in the PR mentioned above.
https://github.com/ruby/ruby/pull/16303#issuecomment-4067703448 -
01:16 PM Revision a188e960 (git): [DOC] Update docs for RB_OBJ_WB_UNPROTECT
-
01:12 PM Revision c2c6c9b5 (git): [DOC] Fix typo in File#path
-
01:12 PM Revision 54c85b80 (git): [DOC] Doc for Pathname#cleanpath (#16387)
-
12:09 PM Bug #21934 (Closed): Prism and parse.y inconsistency in command call used with pattern match
- Yeah, it's fixed by https://github.com/ruby/prism/pull/3970
-
06:33 AM Bug #21934: Prism and parse.y inconsistency in command call used with pattern match
- @kddnewton @tompng Can we close this ticket?
-
11:55 AM Revision 39b65861 (git): rb_ractor_main_alloc: move constants to the static object
- Followup: 9cc71cb9093
-
09:19 AM Bug #21828: An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
- https://github.com/ruby/ruby/commit/9bcd9ba9b31fea19dc56bc2f5c69cf584d3bd23c
-
09:14 AM Bug #21828: An incorrect warning message related to `benchmark` is shown when using `benchmark-ips`
- I think the latest fix should be backported too, so annotating it as such.
-
06:34 AM Revision 9228a130 (git): [ruby/uri] Use `PARSER` instead of `DEFAULT_PARSER` in `URI.join`
- I changed to use `PARSER` instead of `DEFAULT_PARSER` with #161,
but I missed to fix `URi.join`. This PR fixes it.
https://github.com/ruby/uri/commit/85e1499b2c -
06:21 AM Bug #21918 (Assigned): fiber scheduler: fiber interrupt triggers for IOs that haven't been closed
-
06:19 AM Bug #21883 (Assigned): IO::Buffer can be unlocked and freed by another thread during syscall
- 02:49 AM Revision 2fc3013e (git): Bump the github-actions group across 1 directory with 3 updates
- Bumps the github-actions group with 3 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby), [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) and [taiki-e/ins...
-
02:29 AM Revision a0fc03ef (git): [ruby/rubygems] Fix ruby/ruby detection path in bundler spec_helper
- The previous path ../../../lib/bundler/bundler.gemspec resolved outside
the repository root in both ruby/ruby and rubygems repos, so the guard
never triggered. Fix to ../../lib/bundler/bundler.gemspec which correctly
detects the ruby/rub... -
02:29 AM Revision 34e34d8f (git): [ruby/rubygems] Disable coverage collection in ruby/ruby repository
- Skip SimpleCov setup when running inside the ruby/ruby repository to
avoid interference. Detection uses GEM_COMMAND env var for rubygems
and bundler.gemspec presence for bundler.
https://github.com/ruby/rubygems/commit/48805d47f6
Co-Au... -
02:29 AM Revision c78c9e88 (git): [ruby/rubygems] Always collect code coverage for bundler specs
- Configure SimpleCov in spec_helper.rb to collect coverage data for
the bundler test suite, outputting results to the shared coverage
directory.
https://github.com/ruby/rubygems/commit/8af3fe6323
Co-Authored-By: Claude Opus 4.6 <noreply... -
02:29 AM Revision 9e7e9f06 (git): [ruby/rubygems] Use PID in SimpleCov command_name for parallel spec workers
- When running bundler specs with parallel_rspec, each worker process
needs a unique command_name to prevent overwriting each other's
coverage results in .resultset.json.
https://github.com/ruby/rubygems/commit/1f3ad726ac
Co-Authored-By:... -
02:29 AM Revision b91e8fbe (git): [ruby/rubygems] Always collect code coverage for rubygems tests
- Add coverage_setup.rb loaded via -r flag before rubygems to enable
Coverage tracking of boot files. SimpleCov is configured in helper.rb
to collect coverage data for rubygems test suite.
https://github.com/ruby/rubygems/commit/8eed548e4... -
02:29 AM Revision b6a21d2a (git): [ruby/rubygems] Add simplecov as a development dependency
- https://github.com/ruby/rubygems/commit/ca2c5eda12
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> -
01:47 AM Revision 64fcb596 (git): [ruby/rubygems] Remove outdated which command isolation workaround
- https://github.com/ruby/rubygems/commit/6d4f506390
-
01:47 AM Revision 62a1ada2 (git): [ruby/rubygems] Fix which command test isolation
- https://github.com/ruby/rubygems/commit/0420c70cbf
03/15/2026
-
11:13 PM Revision 8da2777d (git): [ruby/psych] Update SnakeYAML-Engine to 3.0.1
- There are two CVEs in Guava, which is a test-scoped dependency of
this library. Guava is not shipped with the library so these CVEs
do not affect users, but the dependency may trigger security tools.
We update to avoid this false positiv... -
05:06 PM Feature #21853: Make Embedded TypedData a public API
- Eregon (Benoit Daloze) wrote in #note-5:
> also considering there is no safeguard to avoid writing to `DATA_PTR`
One idea to address this (but not the other 2 concerns) would be to raise on `DATA_PTR()` for `RUBY_TYPED_EMBEDDABLE`, a... -
02:33 PM Feature #21853: Make Embedded TypedData a public API
- One tricky aspect about `RUBY_TYPED_EMBEDDABLE` is if in the `struct` there is a pointer to inside that `struct` then those pointers will become invalid when the object is moved.
Is there a way to handle that correctly to update such poi... -
05:06 PM Revision 9e89e5f3 (git): [DOC] Doc for Pathname.new (#16373)
-
02:21 PM Feature #21852: New improved allocator function interface
- I'm aware what I propose doesn't solve `Can't support objects of variable width`, i.e. the case for `Thread::Backtrace`.
But AFAIK variable width is only available for core classes (not as public API), and `Thread::Backtrace` is core too... -
02:06 PM Feature #21852: New improved allocator function interface
- Going further, `Class#safe_initialization` instead of redefining these 3 methods could just set a new `internal_alloc_func` field in RClass (only used by new/dup/clone and can never be read by anything else) + rb_undef_alloc_func().
And... -
01:55 PM Feature #21852: New improved allocator function interface
- Thinking more about this I think there should be a protocol or an easy way to avoid the allocated-but-uninitialized state completely, which is problematic for classes defined in C but also in Ruby (though Ruby-defined classes will typica...
-
12:47 PM Revision 6297a3bb (git): [DOC] Simplify doc setup (#16393)
- * Remove stale entries from `.document` files
`doc/.document` referenced two non-existent directories (`date`, `rdoc`).
`ext/.document` referenced eight extensions that have been moved to
gems: bigdecimal, fiddle, monitor, nkf, racc, r... -
08:53 AM Feature #21953 (Open): Allow accessing unshareable objects within a Ractor-local Ruby Box
- ### Status
Currently, non-main ractors prohibit access to the following objects to prevent data races:
* Global variables
* Class variables
* Unshareable class instance variables
* Unshareable constants
### Proposal
... -
08:48 AM Misc #21877: DevMeeting-2026-03-17
- * [Feature #21861] C API: expose `ruby_xfree_sized`, `ruby_xrealloc_sized`, etc (byroot)
* C23 added `void free_sized(void *ptr, size_t old_size)`.
* It has both speed and correctness benefits.
* Several common allocators alread... -
05:42 AM Revision ca23c7c4 (git): [ruby/strscan] Do not use C99 style comment [ci skip]
- The minimum required ruby version of this library is still 2.4.
C99 has been adopted since ruby 2.7.
https://github.com/ruby/strscan/commit/c50abc95ad -
05:42 AM Revision 697eb6d8 (git): [ruby/io-console] Do not use C99 style comment [ci skip]
- The minimum required ruby version of this library is still 2.6.
C99 has been adopted since ruby 2.7.
https://github.com/ruby/io-console/commit/f907e5a237 -
05:36 AM Revision 1e5a4434 (git): [ruby/io-console] Remove no longer used variable
- https://github.com/ruby/io-console/commit/d0ee6034a9
03/14/2026
-
10:19 PM Misc #21877: DevMeeting-2026-03-17
- * [Bug #21685] Unnecessary context-switching, especially bad on multi-core machines. (jpl-coconut)
* Ruby exhibits excessive context switching around fast syscalls, which compromises performance. Microbenchmarks (linked from issue and ...
03/13/2026
-
11:54 PM Revision 79f7ce74 (git): [DOC] Pathname glob doc
- 07:00 PM Revision 86049a98 (git): [ruby/prism] feat: add `start_line`, `end_line`, `start_column`, `end_column`, and `chop` methods for `Location`
- https://github.com/ruby/prism/commit/4258b2ad7e
Co-Authored-By: Kevin Newton <kddnewton@gmail.com> -
05:39 PM Revision ee275b41 (git): Git ignore dump_ast if you are doing an in-place build
-
04:45 PM Misc #20238 (Closed): Use prism for mk_builtin_loader.rb
- Fixed by https://github.com/ruby/ruby/commit/a70dbe1065f58a23a85e576d19e3434e6dd4bb64
-
04:35 PM Bug #21870: Regexp: Warnings when using slightly overlapping \p{...} classes
- I have submitted a patch to Onigmo with the naive strategy (A) as outlined above:
https://github.com/k-takata/Onigmo/pull/175
Contrary to my expectations, it does appear that `/[\p{Word}\p{Alpha}]/` and `/[a-fb-g]/` **do** continue... -
04:03 PM Revision fc16d959 (git): [ruby/prism] Expose parse options to Rust
- https://github.com/ruby/prism/commit/0f1500ce92
-
03:13 PM Revision 17747554 (git): [ruby/prism] Make it possible to lazily deserialize DefNode in Loader.java
- * TRUFFLERUBY_METRICS_REPS=5 jt metrics time --experimental-options -e0
For parsing-core:
before: 0.097 0.099 0.092 0.096
after: 0.061 0.063 0.066 0.059
* Remove extra trailing spaces by using `<%-#`.
https://github.com/ruby/pris... - 03:00 PM Revision 9246b770 (git): Bump timeout for TestGC#test_finalizer_not_run_with_vm_lock
- This test should be redesigned, but increasing the timeout
should probably be good enough for now to not see CI failures related
to it. I can see how this could timeout after 10s.
Failing test after 10s timeout:
https://ci.rvm.jp/result... -
01:16 PM Revision 30ec9c08 (git): Fix use-after-poison in compile.c and prism_compile.c
- Prevent GC from accidentally collecting
-
01:15 PM Revision c0e41097 (git): Speed up memmem on Apple
- Apple's libc implementation of memmem is super slow (it is a forked
version of freebsd's that never got vectorized). Instead, we should
fall back to the rolling hash on Apple. In the attached benchmark,
I'm seeing 1.07% slower to 30.34% ... -
01:15 PM Revision a70dbe10 (git): Use Prism for mk_builtin_loader.rb
- 02:39 AM Revision 90f6507e (git): Bump taiki-e/install-action
- Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).
Updates `taiki-e/install-action` from 2.68.26 to 2.68.27
- [Release notes](https://github.com/taiki-e...
03/12/2026
- 05:00 PM Revision b0754fbd (git): ZJIT: Deduplicate polymorphic send branches by receiver type (#16335)
- 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 immed... -
04:08 PM Revision 1a0e67d3 (git): ZJIT: `::RubyVM::ZJIT.induce_side_exit!` and `induce_compile_failure!`
- 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 w... -
02:50 PM Revision 3f0e61fe (git): Speed up integer parsing in prism_compile.c
-
02:50 PM Revision c45f7817 (git): Cache line lookups in prism compiler
-
02:28 PM Bug #21940: Ruby::Box: `$_` returns stale value due to gvar_tbl caching
- I may have another possibly related `Ruby::Box` special-global case.
This may be a separate `$?` / `Process::Status` issue rather than the same
root cause as `$_` or `$~`, since `$?` seems to be thread-local. Still, the
symptom also... -
02:09 PM Bug #21952 (Open): Ruby::Box double free at process exit when `fiddle/import` is required in multiple boxes
I found what looks like a separate `Ruby::Box` bug from the existing `require` and `LoadError` issues such as `#21760`.
This is not a `LoadError` case. I was able to reduce it to a reproducer where requiring `fiddle/import` from mul...-
12:18 PM Feature #21950: Add a built-in CPU-time profiler
- > Reducing CPU load can be useful even in tasks containing IO.
Oh absolutely, this is a huge part of my day to day work. But even for this I tend to prefer looking at a WALL report as it include both information. I see no need to ign... -
11:33 AM Feature #21950: Add a built-in CPU-time profiler
- Yes, this ticket is about sampling profilers. Sorry for the confusion.
byroot (Jean Boussier) wrote in #note-11:
> Which is an interesting choice, because maybe it's my bias, but I find that CPU-time profiling is really not as common... -
10:15 AM Feature #21950: Add a built-in CPU-time profiler
- byroot (Jean Boussier) wrote in #note-11:
> But I suspect supporting both isn't that much extra work?
I think it'd be good for this API to be able to say which one it wants (like `StackProf`'s `mode:` kwarg). -
10:12 AM Feature #21950: Add a built-in CPU-time profiler
- osyoyu (Daisuke Aritomo) wrote in #note-8:
> I don't want the API/output format to restrict what a profiler could emit. I wouldn't say such design is not doable, but careful consideration would be needed.
Careful consideration is exa... -
08:41 AM Feature #21950: Add a built-in CPU-time profiler
- > it is not about adding a sampling profiler, it is about adding a CPU time profiler that does not sample.
Well, the issue description talk of CPU-time, but it also talk about sampling (`timer_create(3)` etc). So yes, it's a CPU-time ... - 11:46 AM Revision 174b54c4 (git): [ruby/rubygems] Add a Mutex to prevent a bug on Ruby 3.2:
- - There are failing tests on Ruby 3.2 due to an expecation that
checks wheter stderr is empty. In this case, stderr outputs a
warning from Ruby "warning: loading in progress, circular require
considered harmful", but this is not tr... - 11:46 AM Revision ac3b2377 (git): [ruby/rubygems] Split the download and install process of a gem:
- - ### Problem
Bundler awaits for the dependencies of a gem to be download and installed
before it proceeds to downloading and installing the dependency itself.
This creates a bottleneck at the end of the installation process and
... -
08:39 AM Revision a3ee27fa (git): Fix `rdoc:%` target for bundled rdoc
-
08:39 AM Revision 6ba5c3ed (git): outdate-bundled-gems.rb: Keep gemspec files for default gems
- 08:25 AM Revision 235195f8 (git): [ruby/rubygems] Raise an error when building a gem that has a self reference:
- - ### Problem
A gem that has a self-reference in its dependencies would previously
get a warning during `gem build`, saying it's "discouradged".
A gem that includes a self-reference can't be updated due to bundler
filtering it o... -
03:56 AM Revision 5c81ba21 (git): [ruby/rubygems] Make SafeYAML.load an alias of safe_load
- Using Psych, load was actually more restrictive than safe_load. Using
Gem::YAMLSerializer they were identical. We might as well use the same
path for both methods.
https://github.com/ruby/rubygems/commit/d8d927f889 -
03:56 AM Revision d66f8d49 (git): [ruby/rubygems] Update load_yaml test helper to use safe_load
- https://github.com/ruby/rubygems/commit/51544ebfd8
-
03:56 AM Revision 77507870 (git): [ruby/rubygems] Use safe_load from owner_command
- This had been the only user of Gem::SafeYAML.load for a long time. We
might as well be consistent with all other uses and use safe_load.
https://github.com/ruby/rubygems/commit/1b698779f5 -
03:56 AM Revision 7db82681 (git): [ruby/rubygems] Unpend owner_command test
- https://github.com/ruby/rubygems/commit/227df53bc5
-
03:56 AM Revision 0c6972b9 (git): [ruby/rubygems] Restore original SafeYAML.load under Psych
- This was changed to unsafe_load with the swap to YAMLSerializer. But
this method did not previously do an unsafe load and we shouldn't
provide that.
https://github.com/ruby/rubygems/commit/37f71c1eac - 03:52 AM Revision 1424201b (git): [ruby/rubygems] Add test for !binary tag in sequence item inline
- https://github.com/ruby/rubygems/commit/ba4a4b2b26
Co-authored-by: hsbt <12301+hsbt@users.noreply.github.com> -
03:52 AM Revision 1c7b2d2b (git): [ruby/rubygems] Support YAML 1.1 !binary tag in YAMLSerializer
- Decode base64-encoded values tagged with !binary in mapping keys,
mapping values (both inline and block scalar), and sequence items.
This fixes gem install failures for gems packaged with older RubyGems
that used !binary encoding in chec... -
03:51 AM Revision aab7a55c (git): [ruby/rubygems] Warn when require_relative is used to load compiled extensions during gem build
- When a gem has native extensions and uses `require_relative` to load
a path without a corresponding .rb file in the gem, warn that this
will break in RubyGems 4.2, which will stop copying compiled
extensions into the gem's lib directory.... -
03:51 AM Revision 93a516dd (git): [ruby/rubygems] Revert DEFAULT_INSTALL_EXTENSION_IN_LIB to true
- Many gems created with the default template over the past 6 years use
`require_relative` to load compiled extensions, which breaks when
extensions are not copied into the gem's lib directory. Restore the
default to true for now to mainta... - 02:39 AM Revision f3083308 (git): Bump the github-actions group across 1 directory with 2 updates
- Bumps the github-actions group with 2 updates in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby) and [advanced-security/filter-sarif](https://github.com/advanced-security/filter-sarif).
Updates `ruby/setup-ruby` ... -
12:42 AM Revision ad231cdf (git): Windows: Explicitly specify the use of `coreutils` commands
- It appears that shims for individual commands are no longer being
created. -
12:42 AM Revision efca0f45 (git): Use $LOAD_PATH.replace for safer restoration in test
- Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-
12:42 AM Revision 9bcd9ba9 (git): Suppress bundled gems warning for subfeatures found outside stdlib [Bug #21828]
- Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-
12:41 AM Revision 764a245e (git): Fix M:N threads under OpenBSD
- OpenBSD requires MAP_STACK for memory regions used as thread stacks.
However it seems to error with "Invalid argument" unless the permissions
include both PROT_READ | PROT_WRITE.
We should be able to satisft this by re-mmapping over our... -
12:38 AM Feature #21700: `IO::Buffer.map`: offset argument is "broken" and needs to be made more useful
- I've been using `IO::Buffer.map` on macOS without issues. It's still early days but I wonder why it was failing for you.
https://github.com/socketry/async-utilization/blob/main/lib/async/utilization/observer.rb