Activity
From 10/30/2025 to 11/05/2025
Today
- 06:44 PM Revision bf0331b9 (git): ZJIT: Add zjit_alloc_bytes and total_mem_bytes stats (#15059)
-
06:30 PM Revision d327eb60 (git): ZJIT: Track guard shape exit ratio (#15052)
- new ZJIT stats excerpt from liquid-runtime:
```
vm_read_from_parent_iseq_local_count: 10,909,753
guard_type_count: 45,109,441
guard_type_exit_ratio: 4.3%
guard... -
06:28 PM Revision df290e11 (git): Skip an unstable IO test for mswin
- https://github.com/ruby/ruby/actions/runs/19107764906/job/54596244201
-
06:25 PM Revision 242d8edb (git): Extend timeout for unstable tests
- https://github.com/ruby/ruby/actions/runs/19111531630/job/54609629054
-
06:17 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- retro (Josef Šimánek) wrote in #note-17:
> @mame so why to release 4.0 if not causing major breaking changes?
Quoting [my answer to this](https://bugs.ruby-lang.org/issues/21657#note-3) from above:
> ... that is completely a decisio... -
05:01 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @mame so why to release 4.0 if not causing major breaking changes?
-
03:34 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- Just adding my two cents to the off-topic discussion.
I honestly feel that the `~>` constraint was a terrible idea. It's going to be a huge pain when Ruby 4.0 is released (at the end of this year, perhaps?), and all the gems locked to... - 06:01 PM Revision 7334244e (git): [ruby/erb] Fix tag shown in example of ERB expression tag and
- execution tag
(https://github.com/ruby/erb/pull/92)
These were the wrong way around.
https://github.com/ruby/erb/commit/50a5cd76fe - 05:57 PM Revision d3d2357a (git): ZJIT: Run ruby-bench CI for macOS arm64 as well (#15040)
-
05:42 PM
Bug #21664 (Closed): Segfault when running Ractor tests in the same process
- Applied in changeset commit:git|54907db8f3daa6d096e78e7eb78e515842c47789.
----------
Fix ractor move of object with generic ivars (#15056)
This bug was happening only when the `id2ref` table exists. We need
to replace the generic field... - 05:42 PM Revision 54907db8 (git): Fix ractor move of object with generic ivars (#15056)
- This bug was happening only when the `id2ref` table exists. We need
to replace the generic fields before replacing the object id of the
newly moved object.
Fixes [Bug #21664] -
03:56 PM Bug #21670: 3.4.5 crashing with "try to mark T_NONE object"
- It's in `mark_method_entry_i`, which rings a bell. @jhawthorn didn't you fix that one?
@esaron please try the latest patch release: 3.4.7, your issue looks a lot like a missing write barrier issue and John fixed many of them in 3.4.7:... -
03:00 PM Bug #21670 (Open): 3.4.5 crashing with "try to mark T_NONE object"
- We're experiencing a large number of crashes while running tests in CI on Ubuntu 22.04 runners. It is inconsistent, and we cannot reproduce reliably, although when the crash happens it appears to always happen in the same place, even if ...
- 03:36 PM Revision 57040636 (git): Update bundled gems list as of 2025-11-05
-
03:35 PM Revision af6a6a2a (git): Update power_assert to 3.0.1
-
03:13 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- Fun C topic!
wsfulton (William Fulton) wrote in #note-8:
> A more conventional way for default aggregate initialisation is
> ...
Unfortunately, that empty initializer is a violation of the C99 language specification. You can confir... -
07:53 AM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- I thought it was UB in c++98, but have just checked the standard and I have this wrong as the missing members are indeed default initialized.
A more conventional way for default aggregate initialisation is
```c++
struct RSt... -
02:45 PM Bug #21669: Thoroughly implement void value expression check
- Eregon (Benoit Daloze) wrote in #note-1:
> This check is getting more and more complicated and I wonder of the value of having it.
IMO, the current is indeed complicated because it is inconsistent. I think the new behavior is consist... -
01:54 PM Bug #21669: Thoroughly implement void value expression check
- In prism, that whole check fits in about 130 lines: https://github.com/ruby/prism/blob/2ecd49dfeea1d0b00c3af609be82dd488d25c7f3/src/prism.c#L1027-L1166. Looking at that function, probably it would not be very difficult for prism to suppo...
-
01:33 PM Bug #21669: Thoroughly implement void value expression check
- The whole concept of "void value expression" is also weird in Ruby, where every expression/statement has a value, so I think it feels like something that doesn't belong to Ruby.
It probably only triggers for pretty broken code, and ev... -
01:28 PM Bug #21669: Thoroughly implement void value expression check
- This check is getting more and more complicated and I wonder of the value of having it.
In my opinion there is little value of have this check, so given the complexity and the cost to check it (needs extra traversals of potentially larg... -
11:08 AM Bug #21669 (Open): Thoroughly implement void value expression check
- A void-value-expression check is a syntax check that raises a `SyntaxError` if an expression that cannot grammatically return a value (a "void value expression," such as a `return` expression) appears in a context where a value is expect...
-
02:14 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- +1 from me.
We see [a lot of](https://github.com/search?q=Ractor.make_shareable+language%3ARuby&type=code&l=Ruby):
```ruby
CONST = [...]
Ractor.make_shareable(CONST) if defined?(Ractor)
```
in gems, but that should really be:
``... -
10:35 AM Revision 946d2d03 (git): Suppressing unused warnings
-
10:07 AM Revision ae7415c2 (git): [ruby/strscan] [DOC] no doc for internal methods
- https://github.com/ruby/strscan/commit/5614095d9c
-
07:17 AM Revision 439ca043 (git): [ruby/strscan] Deprecate constant `Id`
- `$Id$` is for RCS, CVS, and SVN; no information with GIT.
https://github.com/ruby/strscan/commit/9e3db14fa2 -
07:06 AM Revision 27b1500e (git): [ruby/strscan] [DOC] Add document of StringScanner::Error
- https://github.com/ruby/strscan/commit/16ec901356
-
06:46 AM Revision 2172057f (git): Use Ruby 3.4 for sync_default_gems.rb
- ```
tool/sync_default_gems.rb:177:in `block in <module:SyncDefaultGems>': undefined local variable or method `it' for SyncDefaultGems:Module (NameError)
it.exclude << "lib/open3/jruby_windows.rb"
^^
from <internal:ke... -
06:11 AM Bug #21668: Backport 6cc66469a007d2fb272397e5e27c20b4ce628f5e
- ruby_3_4 commit:c26a2b12e1f7f0779f2e86f59a405b1913cf72c8 merged revision(s) commit:377aa2a336cc700485c699ac49330f2a58b74906.
-
06:02 AM Bug #21668 (Closed): Backport 6cc66469a007d2fb272397e5e27c20b4ce628f5e
- Improves micro-benchmark of UnicodeNormalize
https://github.com/ruby/ruby/pull/14494
~~~ruby
100000.times{UnicodeNormalize.canonical_ordering_one("s\u0307\u0323")}
# 0.107795s → 0.067496s
~~~
-
06:10 AM Revision c26a2b12 (git): merge revision(s) 377aa2a336cc700485c699ac49330f2a58b74906: [Backport #21668]
- [PATCH] Improve performance of UnicodeNormalize.canonical_ordering_one
Use array_of_integer.sort! instead of buble-sort-like algorithm -
06:01 AM Revision f979ef1f (git): sync_default_gems.rb: gracefully handle merge commits
- Find interesting commits by following parents instead of relying on
"git log".
If we encounter a merge commit that may contain a conflict resolution,
fall back to cherry-picking the merge commit as a whole rather than
replaying each ind... -
06:01 AM Revision 85e0f8c8 (git): sync_default_gems.rb: update paths and then do cherry-pick
- Currently, we try to git cherry-pick the upstream commit and then
resolve merge conflicts in the working tree with the help of Git's
rename detection. By the nature of heuristics, it does not work reliably
when the upstream adds or remov... -
06:01 AM Revision b722631b (git): sync_default_gems.rb: use declarative mapping rules
- No behavior change is intended by this change.
-
06:01 AM Revision 348adb8f (git): sync_default_gems.rb: simplify rewriting commit message
- Use "git commit --amend" instead of "git filter-branch" since we only
need to handle one commit at HEAD. -
06:01 AM Revision 26cb69f7 (git): sync_default_gems.rb: fix release check on case-sensitive filesystems
- This fixes it for the English gem.
-
05:52 AM Revision f8d12911 (git): Support passing a #to_str object to Pathname.new for compatibility
- * See https://github.com/ruby/pathname/pull/57#issuecomment-3485646510
-
05:13 AM Revision f8e9bccd (git): [ruby/strscan] Deprecate undocumented toplevel constant `ScanError`
- https://github.com/ruby/strscan/commit/b4ddc3a2a6
-
04:54 AM Revision c85ef2ca (git): [ruby/strscan] ISO C90 forbids mixed declarations and code
- Cannot use C99 syntax, as far as supporting Ruby 2.6 and earlier.
https://github.com/ruby/strscan/commit/f6d178fda5 -
04:53 AM Revision 49b06f40 (git): Use the exception class mentioned in the doc
- Instead of an undocumented constant.
-
04:33 AM Feature #20564 (Closed): Switch default parser to Prism
-
04:08 AM Revision 53f1fc25 (git): ZJIT: Allow Store with 8-bit Opnd::Mem
-
04:08 AM Revision d43533a9 (git): ZJIT: Split LShift in arm64_scratch_split
-
03:57 AM Revision b919eb56 (git): ZJIT: Count caller side features for `complex_arg_pass`
- After 34b0ac68b31, we use a fallback instead of side exit for splats.
Count splats under `send_fallback_one_or_more_complex_arg_pass`. -
03:57 AM Revision 9cfe949d (git): ZJIT: Fallback counter rename: s/fancy/complex/
- Kokubun bought up that "complex" is a more fitting name for what these
counters count. Thanks!
Also:
- make the SendFallbackReason enum name consistent with the counter name
- rewrite the printout prompt in zjit.rb - 02:36 AM Revision 033ba3c8 (git): Don't run global variable hook functions with VM lock held (#15053)
- We can't run arbitrary ruby code with the VM lock held.
-
02:03 AM Revision 13f1b432 (git): [ruby/strscan] [DOC] Remove the statement `rest?` is obsolete
- `eos?` is opposite, cannot be used instead of `rest?`.
https://github.com/ruby/strscan/commit/bee8cc547b -
12:09 AM Revision d24bb1e7 (git): [ruby/stringio] [DOC] Tweaks for StringIO#string=
- (https://github.com/ruby/stringio/pull/172)
https://github.com/ruby/stringio/commit/17ae4daf9a - 12:09 AM Revision bd3b44cb (git): ZJIT: Use a shared trampoline across all ISEQs (#15042)
-
12:09 AM Revision be905b2e (git): [ruby/stringio] [DOC] Tweaks for StringIO#flush
- (https://github.com/ruby/stringio/pull/169)
https://github.com/ruby/stringio/commit/bef6541b55 -
12:08 AM Revision 00b5b3c5 (git): [ruby/stringio] [DOC] Tweaks for StringIO#isatty
- (https://github.com/ruby/stringio/pull/167)
https://github.com/ruby/stringio/commit/94303ace95 -
12:05 AM Revision d5acffba (git): [ruby/stringio] [DOC] Tweaks for StringIO#fsync
- (https://github.com/ruby/stringio/pull/170)
https://github.com/ruby/stringio/commit/da338d7e5d -
12:05 AM Revision e22d9aba (git): [ruby/stringio] [DOC] Tweaks for StringIO#fileno
- (https://github.com/ruby/stringio/pull/168)
https://github.com/ruby/stringio/commit/9f10c7ae86 -
12:03 AM Revision 9c0f2729 (git): [ruby/stringio] [DOC] Tweaks for StringIO#internal_encoding
- (https://github.com/ruby/stringio/pull/166)
https://github.com/ruby/stringio/commit/5eeb61df34
11/04/2025
-
11:57 PM Revision 554a78da (git): [ruby/stringio] [DOC] Doc for StringIO.getc
- (https://github.com/ruby/stringio/pull/163)
https://github.com/ruby/stringio/commit/a126fe252f - 09:56 PM Revision a0376eb2 (git): ZJIT: Fix --zjit-mem-size and add --zjit-exec-mem-size (#15041)
- ZJIT: Fix --zjit-mem-size and resurrect --zjit-exec-mem-size
-
09:40 PM Revision 7a0d730e (git): Resurrect tests for StringScanner#rest?
- that has not been obsolete.
Partially reverting https://github.com/ruby/ruby/pull/15049. -
09:34 PM Revision fffa4671 (git): [ruby/strscan] Resurrect a method that has not been obsolete
- (https://github.com/ruby/strscan/pull/169)
Partially revert https://github.com/ruby/strscan/pull/168 because
strscan_rest_p did not have `rb_warning("StringScanner#rest? is
obsolete")`.
It is actively used by the latest tzinfo.gem, and... -
08:29 PM Revision 962aa14f (git): ZJIT: Add test to reproduce binarytrees crash (#15054)
-
07:48 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- > the core idea of freezing something is to make it immutable, to hold it in place. It could be immutable or another analogy
The `immutable` name is an interesting concept but maybe more in the domain of #18035 than `deep_freeze`. One b... -
06:44 PM Feature #21665: Revisit Object#deep_freeze to support non-Ractor use cases
- I think this is generally useful. I hit a bug in syntax_suggest that took me about 4 hours to track down that boiled down to contents of an array being shared in an unintuitive way so their mutation wasn't cleanly isolated.
On the nam... -
12:13 AM Feature #21665 (Open): Revisit Object#deep_freeze to support non-Ractor use cases
- ## Proposal: Introduce `Object#deep_freeze` (or similar name) to freeze an entire object graph
I would like to re-propose the addition of Object#deep_freeze as a way to explicitly freeze an entire object graph. This proposal was rejec... - 07:46 PM Revision f1f2dfeb (git): Release VM lock before running finalizers (#15050)
- We shouldn't run any ruby code with the VM lock held.
-
07:41 PM Revision e9e5a4a4 (git): [ruby/strscan] Remove methods have been obsolete over two decades
- https://github.com/ruby/strscan/commit/1387def685
-
07:06 PM Revision 091a1cd8 (git): Remove tests for obsolete StringScanner methods
- ruby/strscan#168
-
06:54 PM Revision 480080b5 (git): [ruby/stringio] fix: (jruby) failing to clean buffer's code-range
- same bug as: https://github.com/jruby/jruby/issues/9035
https://github.com/ruby/stringio/commit/65b144b175 -
06:29 PM Revision 36cd985d (git): [ruby/strscan] Remove no longer used variable
- Since https://github.com/ruby/strscan/commit/92961cde2b42.
https://github.com/ruby/strscan/commit/911f9c682a -
05:46 PM Revision b6f00701 (git): [DOC] Mention on top of `vm_*.c` files the VM translation unit they're in (#15048)
- vm_method.c already mentions it.
-
05:28 PM Revision 14f6f705 (git): Fix rb_gc_impl_checking_shareable for modular GC
- This implements it the same as the other modular GC functions
-
04:55 PM Bug #21667 (Open): CVE-2024-12224
- ruby-build triggers Wiz finding CVE-2024-12224 for the leftover build files, when compiling Ruby from source.
- 04:16 PM Revision ee74b97e (git): Update default gems list at 29847070f00184d7c0a97f8e1f18f5 [ci skip]
-
04:14 PM Revision 29847070 (git): [ruby/io-wait] bump up to 0.3.3
- https://github.com/ruby/io-wait/commit/57bc0b752b
-
02:20 PM Bug #21666 (Open): Math.lgamma(-1).should == [infinity_value, 1] fails with Fedora glibc-2.42.9000-8.fc44
- With Fedora glibc-2.42.9000-8.fc44 the following test:
https://github.com/ruby/ruby/blob/cdcb490d2bceb4ff8d6fce349047a2b722e6ae87/spec/ruby/core/math/lgamma_spec.rb#L9
fails like
```
1)
Math.lgamma returns [Infinity, 1] when pas... -
01:42 PM Bug #20409: Missing reporting some invalid breaks
- I think `END { break }` should still be a syntax error, as it always results in an error.
-
12:25 PM Bug #20409: Missing reporting some invalid breaks
- I think `END` should be syntax error. The same is already true for `BEGIN`, seems inconsistent.
-
11:25 AM Revision cdcb490d (git): Tweak ENC_TRANS_SO_D
- It corresponds to TRANSSODIR, that contains `$(arch)`, so should
contain it as well. -
11:07 AM Revision f1776e8f (git): [ruby/json] Tentative fix for RHEL8 compiler
- ```
parser.c:87:77: error: missing binary operator before token "("
#if JSON_CPU_LITTLE_ENDIAN_64BITS && defined(__has_builtin) && __has_builtin(__builtin_bswap64)
```
https://github.com/ruby/json/commit/fce1c7e84a -
08:49 AM Revision 7c924013 (git): [ruby/json] Micro-optimize `rstring_cache_fetch`
- Closes: https://github.com/ruby/json/pull/888
- Mark it as `inline`.
- Use `RSTRING_GETMEM`, instead of `RSTRING_LEN` and `RSTRING_PTR`.
- Use an inlinable version of `memcmp`.
```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.6 (... -
08:49 AM Revision 157ae44b (git): [ruby/json] Extract `JSON_CPU_LITTLE_ENDIAN_64BITS` definition
- Only apply these definitions on 64 bits archs, as it's unclear
if they have performance benefits or compatibility issues on
32bit archs.
https://github.com/ruby/json/commit/ddad00b746 - 06:54 AM Revision 55257b50 (git): Update default gems list at 83c2e3b92e25b766615600913cdca8 [ci skip]
-
06:53 AM Revision 83c2e3b9 (git): [ruby/uri] v1.1.1
- https://github.com/ruby/uri/commit/f1b05c89ab
- 06:45 AM Revision 397bb127 (git): [ruby/uri] Re-allow consecutive, leading and trailing dots in EMAIL_REGEXP
- Effectively reverts commit https://github.com/ruby/uri/commit/788274b180d6 and
https://github.com/ruby/uri/commit/0abac721d8fe.
EMAIL_REGEXP was mostly drawn from WHATWG HTML LS. This spec states that
it intentionally violates RFC 5322 ... -
05:53 AM Revision 44780965 (git): [ruby/io-wait] Select packging files by pathspecs
- https://github.com/ruby/io-wait/commit/c66a90f5b1
- 02:39 AM Revision 0eac75df (git): Bump gacts/run-and-post-run in /.github/actions/setup/directories
- Bumps [gacts/run-and-post-run](https://github.com/gacts/run-and-post-run) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/gacts/run-and-post-run/releases)
- [Commits](https://github.com/gacts/run-and-post-run/compare/d803f6920a... -
01:09 AM Revision 15e64bd2 (git): [ruby/stringio] [DOC] Doc for StringIO#gets
- (https://github.com/ruby/stringio/pull/164)
https://github.com/ruby/stringio/commit/10e991e31d -
01:02 AM Revision 136157e7 (git): Revert "[ruby/rubygems] Fix constants in TAR to be frozen"
- This reverts commit 2c2eaa3103e5cf1cbfc2b16d9db975a9b8a0399a.
-
12:59 AM Revision be495013 (git): [ruby/stringio] [DOC] Doc for StringIO#getbyte
- (https://github.com/ruby/stringio/pull/162)
https://github.com/ruby/stringio/commit/95a7dd592c - 12:49 AM Revision 9ca94075 (git): ZJIT: Implement register spill (#14936)
-
12:47 AM Revision 0d210f4d (git): [ruby/stringio] [DOC] Tweaks for StringIO#external_encoding
- (https://github.com/ruby/stringio/pull/161)
https://github.com/ruby/stringio/commit/92656f5c66 -
12:45 AM Revision 6695a3b3 (git): [ruby/stringio] [DOC] Tweaks for StringIO#eof?
- (https://github.com/ruby/stringio/pull/160)
https://github.com/ruby/stringio/commit/5034156245 -
12:22 AM Revision 2c2eaa31 (git): [ruby/rubygems] Fix constants in TAR to be frozen
- I would like to use the tar implementation inside a Ractor, but two of
the constants are not frozen. This patch freezes the constants so we
can use it in a Ractor.
https://github.com/ruby/rubygems/commit/0ff4790f4c -
12:17 AM Revision bac6a25a (git): [ruby/rubygems] Remove open-ended and prerelease dependency warnings when building gems
- In general, rubygems should provide mechanism and not policy.
Pessimistic versioning is not universally better, and in many
cases, it can cause more problems than it solves. Rubygems should
not be warning against open-ended versioning w... -
12:04 AM Bug #21645 (Assigned): Can't `require "resolve"` on Windows under Bundler without warnings
11/03/2025
-
11:24 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > * There might be situations when such package passes it test suite, but later it is not usable just due to the metadata.
Yup, this is frustrating and I do understand for some it can justify open ended Ruby constraint. Let's find a s... -
10:43 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- I agree with @byroot that the upper bound restriction is from my experience very impractical.
As a maintainer of Ruby in Fedora, once we update Ruby in the distribution, we also make sure that all other packages are compatible with it... -
07:42 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > This arrogant behavior
Arrogant? I'm just sharing my experience and the same metrics Brooke shared to put my experience in perspective.
> ...
My intent was never to be unfriendly, but if that's how you feel I promise to never int... -
07:31 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > Well no. This all stems from you following a very inefficient and user-unfriendly workflow (which you are entirely free to).
@byroot Well yes, I think I have clearly stated that your workflow could be also very inefficient and user-... -
03:42 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- > this all stems from Ruby being chaotic with the version releases
Well no. This all stems from you following a very inefficient and user-unfriendly workflow (which you are entirely free to).
I maintains 2x as many gems gems as you... -
02:32 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- **Jean**:
Sorry, I didn't provide enough context to my original statement. Each year -- about ~2 months before Christmas when a new Ruby version drops -- I release a *patch* version of all my gems that accepts the current version and ... -
11:17 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @byroot just to make it clear, I'm not saying I'm big fan of the current situation, but I just described how the whole ecosystem is designed right now. It is quite old rusty design, not being revisited for years. I agree with you to disa...
-
11:11 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @retro, hard disagree, because if everyone did what you suggest, it means that every year:
- You need to wait on every single one of you dependency to cut a new release with an updated gemspec. When you get hundreds of dependencies th... -
10:29 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @byroot I would not suggest this in general. It can work both ways. Having strict Ruby constraints help to revisit gems after new Ruby release and provides confidence to resolver to install only tested versions for given Ruby. What you s...
-
09:21 AM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- @bkuhlmann please don't restrict the upper versions unless you know for a fact it's incompatible. This prevent the community from testing early release and fixing the compatibility issues in advance. This practice is slowing the communit...
-
09:28 PM Bug #21654: Set#new calls extra methods compared to previous versions
- In any case, I think we should remove the code from `Set.new`. The original ticket was about the behavior of `Range#to_set` vs `Range#to_a`, _not_ about `Set.new`. At least `Set.new`'s behavior should be restored.
- 08:46 PM Revision 4001e81a (git): ZJIT: Inline String#bytesize (#15033)
- Inline the `String#bytesize` function and remove the C call.
-
08:19 PM Revision 81176002 (git): ZJIT: Implement include_p for opt_(new|dup)array_send YARV insns (#14885)
- These just call to the C functions that do the optimized test but this avoids the side exit.
See https://github.com/ruby/ruby/pull/12123 for the original CRuby/YJIT implementation. - 07:30 PM Revision 16af7279 (git): Avoid taking vm barrier in heap_prepare() (#14425)
- We can avoid taking this barrier if we're not incremental marking or lazy sweeping.
I found this was taking a significant amount of samples when profiling `Psych.load`
in multiple ractors due to the vm barrier. With this change, we get s... -
05:02 PM Revision 505fcf5d (git): [ruby/json] ext/json/ext/json.h: Add missing newline at end of file
- https://github.com/ruby/json/commit/3bc1787bd4
-
03:56 PM Revision 2f9e0d35 (git): [ruby/json] Fix duplicate 'inline' declaration specifier
- Followup: https://github.com/ruby/json/pull/889
https://github.com/ruby/json/commit/591510392a -
03:39 PM Revision 4740b3d7 (git): [ruby/json] Fix check_dependency
-
01:27 PM Bug #20409: Missing reporting some invalid breaks
- Today I get a syntax error for all the examples in both parsers except for `END { break }`. Can this be closed or should `END { break }` still be considered?
-
01:12 PM Revision c49e4db6 (git): [ruby/json] parser.c: Always inline `json_eat_whitespace`
- ```
== Parsing activitypub.json (58160 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up --------------------------------------
after 1.174k... -
11:38 AM Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism
- I appreciate the explanation. I openend https://github.com/ruby/prism/pull/3702, it would be nice if you can check that the added tests match your expectation. Basically it is no endless method definition only between `|...|`, which is m...
-
11:33 AM Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings
- @hsbt not sure if you got notification for the last message, could you reopen this?
-
10:46 AM Revision 52a17bbe (git): [ruby/json] parser.c: use `rb_str_to_interned_str` over `rb_funcall`
- https://github.com/ruby/json/commit/21284ea649
-
10:33 AM Revision 0832e954 (git): [ruby/json] parser.c: Extract `json_string_cacheable_p`
- We can share that logic between the two functions.
https://github.com/ruby/json/commit/ac580458e0 -
10:13 AM Revision ea0a411f (git): [ruby/json] parser.c: simplify sorted insert loop in rstring_cache_fetch
- https://github.com/ruby/json/commit/31453b8e95
Co-Authored-By: Scott Myron <samyron@gmail.com> -
09:58 AM Revision edebd83e (git): [ruby/json] parser.c: Skip checking for escape sequences in `rstring_cache_fetch`
- The caller already know if the string contains escape sequences
so this check is redundant.
Also stop calling `rstring_cache_fetch` from `json_string_unescape`
as we know it won't match anyways.
```
== Parsing twitter.json (567916 byte... -
09:22 AM Revision 35a5e551 (git): [ruby/json] Centralize macro definitions
- https://github.com/ruby/json/commit/1576ea7d47
-
04:25 AM Bug #21659 (Rejected): rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- `-Wmissing-field-initializers` is in `-Wextra`, not even in `-Wall`. From the [manual](https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wmissing-field-initializers) (emphasis mine)
> Warn if a structure’s initializer has ... -
01:10 AM Revision 2da2d33c (git): merge revision(s) e500222de1a8d5e7a844209a7e912b03db8cdf76:
- [PATCH] fix last commit
`th` is gone. -
12:44 AM Bug #21559: Unicode normalization nfd -> nfc -> nfd is not reversible
- Note to potential backporters: https://github.com/ruby/ruby/commit/bd51b20c50 should also be backported.
-
12:03 AM Bug #21662: Variables other than those in the conditional score are replaced.
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> I try to guesstimate your intension by telepathy.
> ...
It looks like a trap.
11/02/2025
-
10:11 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- I would also like to know if the next Ruby version is 3.5.0 or 4.0.0 precisely because Ruby doesn't follow Semantic Versioning. Having this knowledge sooner rather than later means I can pin my gemspecs to the correct version (and/or ver...
-
10:00 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Dan0042 (Daniel DeLorme) wrote in #note-28:
> But to be honest, as @hsbt said in #17473, "I'm happy to use Pathname without require it." and that's really all I am looking for as well.
That's a trap though because without requiring i... -
09:41 PM Bug #21664: Segfault when running Ractor tests in the same process
- Once this bug is fixed I think it would be valuable to run these tests together in the same process, as that's a much stronger test than running tiny pieces of code each in their own process (what the bootstrap test harness does).
Notab... -
09:38 PM Bug #21664 (Closed): Segfault when running Ractor tests in the same process
- When running the tests from https://github.com/ruby/ruby/blob/master/bootstraptest/test_ractor.rb in a single process, I see segfaults occurring every time on the following tests:
```
# move object with generic ivar
# move object with... -
06:44 PM Revision 4a3d8346 (git): [DOC] Tweaks for String#to_f
- 05:06 PM Revision c83a249f (git): pend on Windows for timeouts
- 05:06 PM Revision 89fa15b6 (git): Fix incorrect RUBY_DEBUG range
- 05:06 PM Revision 0116dd5e (git): Make Namespace.root visible not only for debugging
- There are many APIs that expects application codes overwrite global methods.
For example, warn() expects Warning.warn() is overwritten to hook warning
messages.
If we enable namespace, Warning.warn defined in the app code is visible
only... - 05:06 PM Revision fa4c04a7 (git): Use CFUNC namespace only for IFUNC frames, its behavior should be unchanged
- 05:06 PM Revision 12303e2e (git): Fix use of inappropriate debug flag
- 05:06 PM Revision bb62a1cf (git): Add flag to ignore EXPERIMENTAL warnings
- 05:06 PM Revision e89eecce (git): No need to call rb_define_class/module_under_id
- Classes/modules defined in a namespace are defined under ::Object
as usual (as without namespaces), and it'll be set into the const_tbl
of ::Object.
In namespaces, namespace objects' const_tbl is equal to the one of ::Object.
So constant... - 05:06 PM Revision bc77a11b (git): Add basic namespace tests
-
04:25 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- Isn't this related to this problem with GCC? https://bugs.ruby-lang.org/issues/21655#change-114967
-
04:18 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- wsfulton (William Fulton) wrote in #note-4:
> Fixing this warning, in particular, removes undefined behaviour.
Can you explain what the undefined behavior is? My understanding is that in both C and C++, the behavior is defined to ze... -
12:18 PM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- Keep code warning free improves the code quality. Fixing this warning, in particular, removes undefined behaviour. Are the core Ruby developers supportive of these goals and consider a patch to fix this warning and possibly even making i...
-
02:51 PM Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism
- Inside `| |` style block parameter, binary operators (example: `1+2`, `1|2`) are rejected because we need to reject ambiguous `|`.
On the right hand side of assignment and endless def, binary operators are allowed, unless we introduce a... -
12:00 PM Bug #21661: Endless method definition as a default value of block parameter is wrongly accepted in Prism
- It isn't specifically about block locals, `p do |a = def f = 1, b| end` is the same.
`p do |a = def f = 1| 2; b|c end` becomes `p do |a = (def f = 1| 2); b|c end`, so one block local `b` and method body of `c`. The same issue as the f... -
02:48 PM Revision 5153a2dc (git): [ruby/json] Invoke `as_json` callback for strings with invalid encoding
- Fix: https://github.com/ruby/json/issues/873
This allow users to encode binary strings if they so wish.
e.g. they can use Base64 or similar, or chose to replace invalid
characters with something else.
https://github.com/ruby/json/commi... - 02:39 PM Revision 11583f53 (git): [DOC] Update bundled gems list at ee7ce9e6d71c7707d13541e9baa3a5
-
02:38 PM Revision ee7ce9e6 (git): Update power_assert to 3.0.0
-
02:17 PM Revision 37c71536 (git): Make rb_str_embed_size aware of termlen
-
02:17 PM Revision 2380f69f (git): Fix array allocation when slot size < 40 bytes
- We need to allocate at least sizeof(struct RArray) when the array is
embedded on garbage collectors that support slot sizes less than 40 bytes. -
02:17 PM Revision dba4c9fb (git): Fix string allocation when slot size < 40 bytes
- We need to allocate at least sizeof(struct RString) when the string is
embedded on garbage collectors that support slot sizes less than 40 bytes. -
11:38 AM Bug #21663 (Open): IO#pos will corrupt the file position in specific situation.
- `IO#pos` and `IO#tell` will corrupt the file position in the following situation.
### Situation:
- Running on Windows. (`RUBY_CRLF_ENVIRONMENT` is defined.)
- The filesize is over 0x100000000 bytes.
- The file is opened in text mod... -
10:22 AM Revision bd51b20c (git): minor code allignment (related to bug 21559)
-
10:13 AM Bug #21662 (Feedback): Variables other than those in the conditional score are replaced.
- I try to guesstimate your intension by telepathy.
binh (binh chau) wrote:
> ```ruby
> ...
You might had expected the third `bar` is a `Bar`.
In fact, the first `bar` in `!bar.is_a?(Bar)` is the attribute.
But the assignment in t... -
07:17 AM Bug #21662 (Feedback): Variables other than those in the conditional score are replaced.
- ```ruby
class Bar
attr_accessor :name
end
class Foo
attr_accessor :bar
def initialize(bar=nil)
@bar = bar || Bar.new
end
def bug!
if !bar.is_a?(Bar)
bar = ''
elsif bar.name == 'bar'
end
... - 08:21 AM Revision f827b116 (git): [ruby/erb] Fix typo in documentation
- (https://github.com/ruby/erb/pull/91)
https://github.com/ruby/erb/commit/6bceee7d6e -
06:17 AM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- ruby_3_3 commit:609f957ebede1a062b1f34515382e4c306f77444 merged revision(s) commit:ffc69eec0a5746d48ef3cf649639c67631a6a609, commit:0531fa4d6fea100f69f0bac9e03973fe49ecd570.
-
05:50 AM Revision 609f957e (git): merge revision(s) ffc69eec0a5746d48ef3cf649639c67631a6a609, 0531fa4d6fea100f69f0bac9e03973fe49ecd570: [Backport #21560]
- [PATCH] `struct rb_thread_sched_waiting`
Introduce `struct rb_thread_sched_waiting` and `timer_th.waiting`
can contain other than `rb_thread_t`.
[PATCH] mn timer thread: force wakeups for timeouts -
05:42 AM Bug #13671: Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
- ruby_3_3 commit:f0feca1a8495eba2706a7914f0c4f8128c281366.
-
05:12 AM Revision 780c2b98 (git): Remove old code for BMH search
- Remove the code for Boyer-Moore-Horspool search.
Now we are using Sunday's quick search.
https://github.com/k-takata/Onigmo/commit/3d9072419a1578b742a422412d004fd8a54209fd -
05:12 AM Revision cd116d2a (git): Fix initialization of the table for quick search
- This fixes k-takata/Onigmo#120.
The commit k-takata/Onigmo@9c13de8d0684ebde97e3709d7693997c81ca374b was insufficient.
https://github.com/k-takata/Onigmo/commit/1de602ddff140d91419e3f86dd35c81d7bd2d8e7 -
05:12 AM Revision 9f81d530 (git): Avoid negative character
- Better fix for k-takata/Onigmo#107.
https://github.com/k-takata/Onigmo/commit/85393e4a63223b538529e7095255ce1153c09cff -
05:12 AM Revision 70aeeeb5 (git): Fix lgtm.com warnings
- * Multiplication result may overflow 'int' before it is converted to
'OnigDistance'.
* Comparison is always true because code <= 122.
* This statement makes ExprStmt unreachable.
* Empty block without comment
https://github.com/k-taka... -
05:11 AM Revision f0feca1a (git): [Bug #13671] Fix that "ss" in look-behind causes syntax error
- Fixes k-takata/Onigmo#92.
This fix was ported from oniguruma:
https://github.com/kkos/oniguruma/commit/257082dac8c6019198b56324012f0bd1830ff4ba
https://github.com/k-takata/Onigmo/commit/b1a5445fbeba97b3e94a733c2ce11c033453af73 -
05:10 AM Revision cbc1460e (git): Revert "[tune] implicit-anchor optimization"
- This reverts commit 282338f88a8bf0807a7a1d21b06f78abe9de8fac.
It seems that the commit didn't improve the performance.
Revert it to fix k-takata/Onigmo#100.
https://github.com/k-takata/Onigmo/commit/cef834cb3a6e278fa252f52b704c65175a970ac0 -
05:09 AM Revision 6809ba2f (git): Fix performance problem with /k/i and /s/i (Close k-takata/Onigmo#97)
- E.g.
For the pattern `/----k/i`, optimization was totally turned off.
Make it possible to use the characters before `k` (i.e. `----`) for
optimization.
https://github.com/k-takata/Onigmo/commit/9c13de8d0684ebde97e3709d7693997c81ca374b -
05:05 AM Revision e02c892a (git): Fix indents in Onigmo files to use spaces instead of tabs (#14047) [no ci]
-
04:41 AM Bug #21625: Allow IO#wait_readable together with IO#ungetc even in text mode
- ruby_3_3 commit:30f661951bb19f69cf55388c76ecaf7b0be41079 merged revision(s) commit:12350eb9e0d3317da57b5a37c0c2810946b48850.
- 04:34 AM Revision 2c7fd073 (git): [DOC] Update bundled gems list at 22496e2fe6ea4d354d039927a33458
-
04:33 AM Revision 22496e2f (git): Update bundled irb and repl_type_completor version (#15030)
-
04:28 AM Revision 30f66195 (git): merge revision(s) 12350eb9e0d3317da57b5a37c0c2810946b48850: [Backport #21625]
- [PATCH] [Bug #21625] Allow io/wait methods with `IO#ungetc` in text mode
-
02:10 AM Bug #21559: Unicode normalization nfd -> nfc -> nfd is not reversible
- Backport would only be needed if the upgrade to Unicode 16.0.0 (see https://bugs.ruby-lang.org/issues/20724) is backported.
-
02:06 AM Bug #21559 (Closed): Unicode normalization nfd -> nfc -> nfd is not reversible
- Added regression test at https://github.com/ruby/ruby/commit/a122d7a58e91ed6cd531e906cb398688d7cc8b17
and fix at https://github.com/ruby/ruby/commit/e4c8e3544237b8c0efba6b945173dc66552d641c.
Many thanks to Tomoya Ishida for finding thi... -
12:27 AM Revision e4c8e354 (git): Remove recursion in UnicodeNormalize.nfc_one, fixing bug 21159.
-
12:27 AM Revision 83a943b5 (git): Add test for Unicode normalization of Gurung Khema.
-
12:27 AM Revision a122d7a5 (git): Add regression test for bug 21559.
11/01/2025
-
07:14 PM Revision 48c7f349 (git): Fix rescue in test_ractor.rb
-
04:07 PM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- The 3.4 backport was merged, but the 3.3 backport doesn't apply cleanly.
-
07:53 AM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- I forgot it was introduced in 3.3. It is eligible for backport, but ultimately that decision is up to each branch maintainers.
-
03:51 PM Revision 7ec94afa (git): mn timer thread: force wakeups for timeouts
-
03:49 PM Bug #21660: No-parentheses endless method definition that has parameter destructuring is wrongly accepted in Prism
- Sorry, I forgot about your comment on https://github.com/ruby/prism/pull/3674. https://github.com/ruby/prism/pull/3700 will fix this
-
07:27 AM Bug #21660 (Open): No-parentheses endless method definition that has parameter destructuring is wrongly accepted in Prism
- This is syntax error in parse.y but not in Prism.
~~~ruby
def f a, (b) = 1
~~~
Related to #21623 -
02:47 PM Revision 390d77ba (git): Fix memory leak in String#encode when StringValue raises
- The following script leaks memory:
10.times do
100_000.times do
"\ufffd".encode(Encoding::US_ASCII, fallback: proc { Object.new })
rescue
end
puts `ps -o rss= -p #{$$}`
end
Before:
450244
... -
02:35 PM Revision 5384136e (git): [ruby/json] Enable JSON_DEBUG for parser/extconf.rb
- https://github.com/ruby/json/commit/82b030f294
-
01:58 PM Revision af0597f0 (git): [ruby/json] Enable JSON_DEBUG for parser/extconf.rb
- https://github.com/ruby/json/commit/3ea744ad67
-
01:50 PM Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings
- There's a new windows-head build that I tried now. Unfortunately I still get this error. The difference seems to be that `bundler-cache: true` specifies a vendor directory for bundle install, which I skipped when applying the change. So ...
-
12:06 PM Revision a97f4c62 (git): [ruby/json] parser.c: Appease GCC warning
- ```
../../../../../../ext/json/ext/parser/parser.c:1142:40: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
1142 | if (RB_UNLIKELY(first_digit == '0' && mantissa_digits > 1 || negative && mantissa_digits == 0))... -
12:00 PM Revision ed7229ea (git): [ruby/json] parser.c: Use SWAR to skip consecutive spaces
- Closes: https://github.com/ruby/json/pull/881
If we encounter a newline, it is likely that the document is pretty printed,
hence that the newline is followed by multiple spaces.
In such case we can use SWAR to count up to eight consecu... -
11:16 AM Revision 94287b1e (git): Make the expectation more precise in Ractor.make_shareable(Proc) test
-
11:16 AM Revision 33a026fe (git): Fix the description and logic for the Ractor.make_shareable(Proc) test
-
10:22 AM Revision babf50e3 (git): [ruby/json] Use SWAR for parsing integers on little endian machines
- Closes: https://github.com/ruby/json/pull/878
```
== Parsing float parsing (2251051 bytes)
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/json/commit/dbd83256b1) +YJIT +PRISM [arm64-darwin24]
Warming up ------------------------... -
10:10 AM Revision db570804 (git): [DOC] How to use `make matz`
-
09:58 AM Revision 5ce27bef (git): Flush NEWS.md only when NEW is not given
- Split flushing NEWS and bumping up versions
-
09:54 AM Revision bca8fce7 (git): [ruby/json] parser.c: Introduce `rest()` helper
- https://github.com/ruby/json/commit/11f4e7b7be
-
09:41 AM Revision 1942cb21 (git): [ruby/json] Add test coverage for T_BIGNUM parsing
- https://github.com/ruby/json/commit/f0150e2944
-
09:40 AM Revision b3d5c966 (git): [ruby/json] parser.c: Introduce `peek()` and `eos()` helpers
- Encapsulate pointer arithmetic to reduce possibility of mistakes.
https://github.com/ruby/json/commit/8b39407225 -
08:52 AM Revision a6bdf52b (git): [ruby/json] parser.c: Extract json_parse_digits
- https://github.com/ruby/json/commit/1bf405ecc6
-
08:52 AM Revision 6e2e7a33 (git): [ruby/json] parser.c: Extract `json_parse_number`
- https://github.com/ruby/json/commit/2681b23b87
-
08:16 AM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- wsfulton (William Fulton) wrote in #note-2:
> This happens when compiling an EXTENSION. We have always used -Wmissing-field-initializers in our extensions and now they are broken. New Ruby releases really MUST NOT introduce new warnings... -
07:37 AM Bug #21659: rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- This happens when compiling an EXTENSION. We have always used -Wmissing-field-initializers in our extensions and now they are broken. New Ruby releases really MUST NOT introduce new warnings for extensions which have to include Ruby.h.
-
01:01 AM Bug #21659 (Feedback): rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- In configure.ac, we add `-Wno-missing-field-initializers` explicitly if available.
Are you adding that `-Werror -Wmissing-field-initializer` by yourself? -
07:28 AM Bug #21661 (Open): Endless method definition as a default value of block parameter is wrongly accepted in Prism
- These are syntax error in parse.y but not in Prism.
~~~ruby
p do |a = def f = 1; b| end
p do |a = def f = 1| 2; b|c end # `|` inside block parameter
~~~
Normal assignment as a default value `p do |a = b = 1| end` is already syntax e... - 06:50 AM Revision 8c190052 (git): Update bundled gems list as of 2025-10-31
-
02:39 AM Bug #21658 (Rejected): Encoding objects are dumped with an encoding of US-ASCII
- That is not an instance variable of an `Encoding` instance, but the instance variable for the encoding of the name.
-
01:23 AM Bug #21654: Set#new calls extra methods compared to previous versions
- mame (Yusuke Endoh) wrote in #note-13:
> My concern is that the expectation to "if it's at all possible to raise early" is a slippery slope with no clear boundary.
I don't think it's slippery at all. There's a very clear difference betw... -
12:18 AM Revision 17a7b4e0 (git): [DOC] Fix typo in `Hash#compare_by_identity` docs
10/31/2025
-
11:32 PM Revision 8db30094 (git): ZJIT: Fix incorrect elision of call to BasicObject#!=
- rb_obj_not_equal() uses rb_funcall(), so it's not `no_gc`, `leaf`, nor
`elidable`. -
11:21 PM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- This is also an issue with 3.3.10 and 3.4.7. Should it be backported? The original [commit](https://github.com/ruby/ruby/commit/be1bbd5b7d40ad86) happened on 12-Oct-2023
-
10:45 PM Bug #21659 (Rejected): rstring.h error: missing initializer for field ‘len’ of ‘struct RString’ [-Werror=missing-field-initializers] starting in ruby-3.3.10
- All extensions now have this error when using -Werror -Wmissing-field-initializers:
```
In file included from /home/runner/.rvm/rubies/ruby-3.3.10/include/ruby-3.3.0/ruby/internal/arithmetic/char.h:29,
from /home/run... -
09:09 PM Revision cc8cfbcd (git): ZJIT: Standardize variable name for callable method entry (#15021)
-
08:32 PM Revision b931199d (git): Avoid duping cc table when cme == NULL
-
08:32 PM Revision 4fc9ad52 (git): Remove always true conditonals in vm_populate_cc
-
07:48 PM Revision 7688b050 (git): ZJIT: Optimize VM_METHOD_TYPE_ALIAS (#15018)
- Just loop until you find a non-alias.
- 07:47 PM Revision ab01fcc5 (git): ZJIT: Let AssemblerPanicHook write into stderr (#15019)
-
07:10 PM Misc #21647: DevMeeting-2025-11-13
- * [Bug #21654] Set#new calls extra methods compared to previous versions
* Set#new is calling "size" on its input, this is causing extra database queries in our app
* The bug was introduced in d4020dd5faf28486123853e7f00c36139fc077... -
07:05 PM Bug #21654: Set#new calls extra methods compared to previous versions
- mame (Yusuke Endoh) wrote in #note-13:
> I understand your point, but I personally disagree.
> ...
💯
> That said, I recall @matz expressing a similar concern to yours. I would like to hear his opinion on this matter.
I'll add thi... -
07:15 AM Bug #21654: Set#new calls extra methods compared to previous versions
- I understand your point, but I personally disagree.
My concern is that the expectation to "if it's at all possible to raise early" is a slippery slope with no clear boundary.
For example, an operation like `(1..1<<100).to_a` will a... -
06:08 PM Revision 980e1849 (git): namespace.c: Fix -Wunused-function warnings
-
05:54 PM Revision 2c88500c (git): ZJIT: Simplify some profiling APIs (#15017)
-
04:02 PM Revision 6bdb2027 (git): [ruby/json] Fix memory leak when exception is raised during JSON generation part 2
- Commit https://github.com/ruby/json/commit/44df509dc2de fixed it for StandardError, but other exceptions and
jumps are also possible. Use rb_ensure() to release FBuffer instead of
rb_rescue().
A reproducer:
o = Object.new
def o... -
03:59 PM Bug #21658 (Rejected): Encoding objects are dumped with an encoding of US-ASCII
- All encodings get Marshal.dump'ed with an encoding instance variable:
```
$ cx ruby-3.4 ruby -e 'Encoding.constants.each { p Marshal.dump(Encoding.const_get(it)) }'
"\x04\bIu:\rEncoding\x10MacJapanese\x06:\x06EF"
"\x04\bIu:\rEncodi... - 01:42 PM Revision 65168b7e (git): Specify RUBY_DEBUG flag in the right way
- 01:42 PM Revision 961683bc (git): Run .so init functions in namespaces to be loaded
-
11:50 AM Bug #13671 (Closed): Regexp with lookbehind and case-insensitivity raises RegexpError only on strings with certain characters
- Applied in changeset commit:git|bfbbcf34557b0aad4f5ed045df3e4e86b11c9a8c.
----------
[Bug #13671] Fix that "ss" in look-behind causes syntax error
Fixes k-takata/Onigmo#92.
This fix was ported from oniguruma:
https://github.com/kkos/o... -
11:49 AM Revision ba74fcd6 (git): Remove old code for BMH search
- Remove the code for Boyer-Moore-Horspool search.
Now we are using Sunday's quick search.
https://github.com/k-takata/Onigmo/commit/3d9072419a1578b742a422412d004fd8a54209fd -
11:49 AM Revision a8924683 (git): Fix initialization of the table for quick search
- This fixes k-takata/Onigmo#120.
The commit k-takata/Onigmo@9c13de8d0684ebde97e3709d7693997c81ca374b was insufficient.
https://github.com/k-takata/Onigmo/commit/1de602ddff140d91419e3f86dd35c81d7bd2d8e7 -
11:49 AM Revision 54b96395 (git): Avoid negative character
- Better fix for k-takata/Onigmo#107.
https://github.com/k-takata/Onigmo/commit/85393e4a63223b538529e7095255ce1153c09cff -
11:49 AM Revision daf0d6c6 (git): Fix lgtm.com warnings
- * Multiplication result may overflow 'int' before it is converted to
'OnigDistance'.
* Comparison is always true because code <= 122.
* This statement makes ExprStmt unreachable.
* Empty block without comment
https://github.com/k-taka... -
11:49 AM Revision bfbbcf34 (git): [Bug #13671] Fix that "ss" in look-behind causes syntax error
- Fixes k-takata/Onigmo#92.
This fix was ported from oniguruma:
https://github.com/kkos/oniguruma/commit/257082dac8c6019198b56324012f0bd1830ff4ba
https://github.com/k-takata/Onigmo/commit/b1a5445fbeba97b3e94a733c2ce11c033453af73 -
11:49 AM Revision bcea1129 (git): Revert "[tune] implicit-anchor optimization"
- This reverts commit 282338f88a8bf0807a7a1d21b06f78abe9de8fac.
It seems that the commit didn't improve the performance.
Revert it to fix k-takata/Onigmo#100.
https://github.com/k-takata/Onigmo/commit/cef834cb3a6e278fa252f52b704c65175a970ac0 -
11:49 AM Revision 981ee02c (git): Fix performance problem with /k/i and /s/i (Close k-takata/Onigmo#97)
- E.g.
For the pattern `/----k/i`, optimization was totally turned off.
Make it possible to use the characters before `k` (i.e. `----`) for
optimization.
https://github.com/k-takata/Onigmo/commit/9c13de8d0684ebde97e3709d7693997c81ca374b -
08:54 AM Bug #21607: require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 built with GCC 15
- satadru (Satadru Pramanik) wrote in #note-16:
> thesamesam (Sam James) wrote in #note-15:
> ...
Can you please run it under gdb and obtain one? - 04:55 AM Revision a6379032 (git): Update default gems list at 307b625b5968895055fe7be1e009c8 [ci skip]
-
04:54 AM Revision 307b625b (git): [ruby/digest] v3.2.1
- https://github.com/ruby/digest/commit/687e7cc1e1
- 04:47 AM Revision 2b6dc5bf (git): Update default gems list at 3941164c63ab77ac05228cc3afbff6 [ci skip]
-
04:45 AM Revision 3941164c (git): [ruby/win32-registry] v0.1.1
- https://github.com/ruby/win32-registry/commit/6d8a43a890
-
04:37 AM Misc #21656 (Closed): Exclude dependabot PRs from automated gem release notes
- I added the following for excluding `dependabot` update.
```
changelog:
exclude:
labels:
- dependencies
```
It seems working fine: https://github.com/ruby/net-http/releases/tag/v0.7.0 - 04:36 AM Revision 8b88e7f8 (git): Update default gems list at 0044bac4de603b4b4d4815cc27167e [ci skip]
-
04:34 AM Revision 0044bac4 (git): [ruby/resolv] v0.6.3
- https://github.com/ruby/resolv/commit/31a393e96c
- 03:35 AM Revision d5c05585 (git): Update default gems list at d3d6f19eb5aa1cd466002adb03f150 [ci skip]
-
03:34 AM Revision d3d6f19e (git): [ruby/optparse] Bump up to v0.8.0
- v0.8.0 is mistake of release workflow. This version is same as v0.7.0
https://github.com/ruby/optparse/commit/9a467d10d4 - 03:22 AM Revision 5fbc0bcf (git): Update default gems list at 9facc6e9603d5edf1f7a07756c71ea [ci skip]
-
03:21 AM Revision 9facc6e9 (git): [ruby/optparse] Bump up v0.7.0
- https://github.com/ruby/optparse/commit/a394ca4878
-
03:13 AM Revision 2eae7049 (git): [ruby/optparse] We should use VERSION instead of Version constant
- https://github.com/ruby/optparse/commit/94de48b47e
- 02:30 AM Revision 5b2707f3 (git): Update default gems list at 8b1fd559b8f75caeeec4ceaa23df26 [ci skip]
-
02:28 AM Revision 8b1fd559 (git): [ruby/net-http] v0.7.0
- https://github.com/ruby/net-http/commit/ec9c70a6fb
- 01:50 AM Revision 78966ae6 (git): Update default gems list at d2ffab11ce629367b13e7b607b9644 [ci skip]
-
01:48 AM Revision d2ffab11 (git): [ruby/uri] v1.1.0
- https://github.com/ruby/uri/commit/c41903b3e4
-
01:38 AM Revision f0993de1 (git): [ruby/uri] improve error message
- https://github.com/ruby/uri/commit/1c6e81b721
-
01:38 AM Revision 1dce0ae5 (git): [ruby/uri] Switch a parsing behavior completely when switching a parser
- Currently, some methods' behavior(e.g. `URI.parse`) don't change
when switching a parser. This is because some methods use
`DEFAULT_PARSER`, but `parser=` doesn't change `DEFAULT_PARSER`.
This PR introduces a constant to keep a parser's... - 01:38 AM Revision 08e822ba (git): [ruby/uri] chore(docs): replace reference to the obsolete URI.escape with URI::RFC2396_PARSER.escape
- https://github.com/ruby/uri/commit/72e7d6b364
-
01:32 AM Revision 240962df (git): [ruby/uri] Use generic version number to VERSION and generate VERSION_CODE from that
- https://github.com/ruby/uri/commit/1fc4f0496a
-
12:50 AM Revision 2486e771 (git): Added missing options to help message
- 12:15 AM Revision 17e95cb4 (git): Update default gems list at 94e6d76714a4dc784cde503c846998 [ci skip]
-
12:14 AM Revision 94e6d767 (git): [ruby/English] v0.8.1
- https://github.com/ruby/English/commit/c921886aaf
-
12:13 AM Revision a4c33615 (git): [ruby/mmtk] Bump mmtk-core
- https://github.com/ruby/mmtk/commit/9876d8f0a1
10/30/2025
- 10:31 PM Revision f8b4feb7 (git): ZJIT: Use LoadField for specialized GetIvar
- 10:31 PM Revision 0268c86b (git): ZJIT: Inline struct aref
-
10:23 PM Revision c54faf29 (git): release.yml: Use workflow_dispatch for docker-images
- instead of repository_dispatch.
Only that workflow reacts to repository_dispatch, so just using
workflow_dispatch should be enough. We want to use workflow_dispatch for
manual triggers, and I don't want to maintain two different dispatc... -
10:14 PM Revision 69ec1481 (git): ZJIT: Count unsupported fancy caller side features
- These count caller-side features we don't support. But because we side
exit when we see them through unhandled_call_type(), these new counters
currently don't trigger. -
10:14 PM Revision 5b71b103 (git): ZJIT: Unsupported call feature accounting, and new `send_fallback_fancy_call_feature`
- In cases we fall back when the callee has an unsupported signature, it
was a little inaccurate to use `send_fallback_send_not_optimized_method_type`.
We do support the method type in other situations.
Add a new `send_fallback_fancy_call... - 10:02 PM Revision 68dd1abd (git): ZJIT: Run ruby-bench as a test suite (#15003)
-
09:14 PM Revision 2afcdc69 (git): Change load factor of concur. set from 0.5 to 0.75 (#15007)
- Before, the 50% load factor was not working correctly with the new capacity
calculation on resize and too many resizes were seen.
Before this change
------------------
Example:
old_capacity = 32
old_size = 16
deleted_entries = 2 (almo... -
08:47 PM Revision 34b0ac68 (git): ZJIT: Prevent specialization of splats instead of side-exiting (#15005)
-
08:45 PM Bug #21560 (Closed): RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- This should be fixed by https://github.com/ruby/ruby/commit/0531fa4d6fea100f69f0bac9e03973fe49ecd570
-
08:44 PM Revision 0531fa4d (git): mn timer thread: force wakeups for timeouts
-
08:35 PM Bug #21654: Set#new calls extra methods compared to previous versions
- > If an operation hangs, let it hang.
I don't agree with that. If an operation crashes, yes, let it crash. But if it hangs, that's an order of magnitude or two harder to debug. Even more so if the "hang" is accompanied by unrestrained m... -
04:36 PM Bug #21654: Set#new calls extra methods compared to previous versions
- tenderlovemaking (Aaron Patterson) wrote in #note-10:
> mame (Yusuke Endoh) wrote in #note-9:
> ...
I agree with @mame and @tenderlovemaking. Removing special handling of infinite ranges avoids the original issue (calling `size`), as ... -
04:29 PM Bug #21654: Set#new calls extra methods compared to previous versions
- mame (Yusuke Endoh) wrote in #note-9:
> Dan0042 (Daniel DeLorme) wrote in #note-7:
> ...
I personally agree with this. If I write an infinite loop, I expect it to loop infinitely, even if I wrote the infinite loop by mistake. Calling... -
04:20 PM Bug #21654: Set#new calls extra methods compared to previous versions
- Dan0042 (Daniel DeLorme) wrote in #note-7:
> What that really what you meant by "checking if Range#end is nil is good enough" ?
Yes. The original issue (#21513) was about the consistency between `(1..).to_a` and `(1..).to_set`. Since... -
02:52 PM Bug #21654: Set#new calls extra methods compared to previous versions
- IMO, ranges should behave the same when `end == Float::INFINITY` and when `end == nil`. They are both practically endless ranges, but nothing normalizes them so that they always behave the same. Maybe `(1..1/0.0)` should be internally tr...
-
02:17 PM Bug #21654: Set#new calls extra methods compared to previous versions
- @mame, this PR causes `Set.new(1..1/0.0)` to hang rather than raise an error. The unit test for this was removed: https://github.com/ruby/ruby/pull/14990/files#diff-841852fda8de5c29b86810572be72d6e29cda4a2f3d179c63b77fb6fb06d09dfL91-L93
... -
07:15 PM Revision 6707945f (git): ZJIT: Split out optimized method types in stats (#15002)
- We can see send/block call/struct aref/... e.g. on lobsters:
```
Top-9 not optimized method types for send_without_block (100.0% of total 3,133,812):
iseq: 2,004,557 (64.0%)
optimized_struct_aref: 496,232 (15.8%)
... -
05:44 PM Revision 9b189469 (git): zjit-ubuntu.yml: Remove an extra empty line
-
05:30 PM Revision 57f76f62 (git): ZJIT: Fix incorrect self.class.respond_to? folding (#15001)
- Right now we have a subtle type system bug around `types::Class`. Until
that is resolved, stop marking `Kernel#class` as returning
`types::Class`, which fixes Rubocop.
Re: https://github.com/Shopify/ruby/issues/850 -
01:32 PM Revision 481f9944 (git): [Feature #19630] Limit the versions with the old behavior
- It is already declared as:
> This behavior is slated to be removed in Ruby 4.0 -
01:18 PM Bug #21522 (Closed): Accessing outer locals via eval in a Ractor returns false
- Applied in changeset commit:git|244a37bd53fb5c7ba219ef958b6adaa2c4b0b67e.
----------
Fixes [Bug #21522] eval isolation in Ractors for Prism -
01:17 PM Revision 244a37bd (git): Fixes [Bug #21522] eval isolation in Ractors for Prism
-
01:15 PM Bug #21618 (Closed): Allow to use the build-in prism version to parse code
-
01:06 PM Revision 8e7d427a (git): [ruby/prism] Add equal_loc to call nodes
- In the case of attribute writes, there are use cases where you want
to know the location of the = sign. (Internally we actually need
this for translation to the writequark AST.)
https://github.com/ruby/prism/commit/bfc798a7ec -
01:05 PM Revision 99382f74 (git): [ruby/prism] Unescape unary method calls
- Followup to https://github.com/ruby/prism/pull/2213
Before:
```sh
$ ruby -ve "puts 42.~@"
ruby 3.4.6 (2025-09-16 revision https://github.com/ruby/prism/commit/dbd83256b1) +PRISM [x86_64-linux]
-e:1:in '<main>': undefined method '~@' for... -
12:47 PM Revision d5fbff50 (git): [DOC] LEGAL for JSON vendored sources
-
12:34 PM Revision f6c2a638 (git): CI: Exclude vendored sources at cheching if US-ASCII clean
-
12:28 PM Revision a88c5558 (git): Fix up JSON dependency
-
12:00 PM Bug #21607: require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 built with GCC 15
- thesamesam (Sam James) wrote in #note-15:
> Is there a backtrace for this somewhere?
Ruby was segfaulting without creating a backtrace. -
09:30 AM Bug #21607: require 'concurrent-ruby' causes segfault with Ruby 3.4.6 on linux/i686 built with GCC 15
- Is there a backtrace for this somewhere?
-
10:56 AM Revision 3ca43216 (git): [ruby/json] Add ryu float parser.
- https://github.com/ruby/json/commit/9c4db31908
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com> -
10:34 AM Revision 317f102c (git): [ruby/json] Fix GeneratorError messages to be UTF-8 encoded
- https://github.com/ruby/json/commit/965ba6c5d4
-
09:31 AM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- Reminds me a bit of https://bugs.ruby-lang.org/issues/21516 as well.
-
09:18 AM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- alanwu (Alan Wu) wrote in #note-8:
> Looks like you're not building with LTO, so the miscomp from `ipa-modref` should be in rb_str_resize(). That should be enough for a bug report for GCC, since they [need](https://gcc.gnu.org/bugs/#need... -
12:21 AM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- Looks like you're not building with LTO, so the miscomp from `ipa-modref` should be in rb_str_resize(). That should be enough for a bug report for GCC, since they [need](https://gcc.gnu.org/bugs/#need) a preprocessed C file.
Maybe thi... -
09:30 AM Revision 4b1279b6 (git): Take `MAJOR` and `MINOR` from `$(NEW)` if given
- 09:15 AM Revision d1d85bb4 (git): [ruby/resolv] Fix invalid "Broken registry" warning for UseDomainNameDevolution
- This value is dword, not a string.
Amends https://github.com/ruby/resolv/commit/720e25034042.
https://github.com/ruby/resolv/commit/bf00ed8585 -
09:04 AM Revision 3f230c7e (git): add deps
-
09:04 AM Revision ef558cea (git): fix ibf and coverage sharable issue
-
09:04 AM Revision a003903e (git): fix cross ractor require
- `cross_ractor_require` is sharable object but it refers
to unsharable objects.
To fix it, make the process simple. -
09:04 AM Revision b9188901 (git): allow Ractor::Port shareable
-
09:04 AM Revision 09e9247e (git): MatchData may refer a String
-
09:04 AM Revision 860bad85 (git): specific traces can be unshareable
-
09:04 AM Revision b09f782f (git): Ractor's queue can contain unshareable objects
-
09:04 AM Revision 8e4dc109 (git): Ractor's name should be shareable
- 06:53 AM Revision 6b9b048a (git): Update bundled gems list as of 2025-10-30
-
03:32 AM Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings
- @Earlopain Thanks for your confirmation. I fixed that at `ruby/resolv` and `ruby/ruby`.
-
03:16 AM Bug #21645 (Closed): Can't `require "resolve"` on Windows under Bundler without warnings
- Applied in changeset commit:git|15f2dcceb4787c5738dde48f580019c3765ce1b8.
----------
[ruby/resolv] Fallback to powershell implementation under the bundle environment
[Bug #21645]
win32-registory can't load fiddle if Gemfile didn't hav... -
03:16 AM Revision 15f2dcce (git): [ruby/resolv] Fallback to powershell implementation under the bundle environment
- [Bug #21645]
win32-registory can't load fiddle if Gemfile didn't have that dependency.
https://github.com/ruby/resolv/commit/1319183a4b -
01:33 AM Revision 80e2b06d (git): ZJIT: Limit the default size of LIR dump
- For test_zjit.rb output, it was too long for a single test to print
thousands of lines. -
01:33 AM Revision 02c9ffd1 (git): ZJIT: Enable comments for --zjit-debug on dev builds
- I wanted to see comments on test_zjit.rb failures.
-
12:43 AM Revision 78e4a36f (git): [ruby/error_highlight] Support cases where there are multiple missing / wrong kwargs
- This commit fixes the case when there are multiple missing or incorrect
keywords provided to a method. Without this fix, ErrorHighlight itself
will raise an exception
https://github.com/ruby/error_highlight/commit/8bde92b36e -
12:35 AM Revision 750c7509 (git): [DOC] ZJIT: Add documentation about native stack and Ruby's VM stack (#14993)
- ZJIT: Add documentation about native stack and Ruby's VM stack
-
12:18 AM Revision b8c82a99 (git): Fix memory leak in String#encode when fallback too big
- The following script leaks memory:
10.times do
100_000.times do
"\ufffd".encode(Encoding::US_ASCII, fallback: proc { "\uffee" })
rescue
end
puts `ps -o rss= -p #{$$}`
end
Before:
451196
...