Activity
From 10/26/2025 to 11/01/2025
Today
-
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 (Feedback): 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
...
10/29/2025
-
11:53 PM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- alanwu (Alan Wu) wrote in #note-5:
> It's surprising that leaving the temporary struct uninitialized avoids the crash. Smells like a GCC bug or some UB on our end the optimizer is exploiting.
> ...
Per a suggestion on the downstream bu... -
11:41 PM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- alanwu (Alan Wu) wrote in #note-5:
> It's surprising that leaving the temporary struct uninitialized avoids the crash. Smells like a GCC bug or some UB on our end the optimizer is exploiting.
> ...
It doesn't appear to, when added to C... -
09:31 PM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- It's surprising that leaving the temporary struct uninitialized avoids the crash. Smells like a GCC bug or some UB on our end the optimizer is exploiting.
Does `./configure optflags=-fno-strict-aliasing ...` help? -
06:40 AM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- I manually bisected inside that "bad" commit and found that this minimal diff on top of v3_3_10 eliminates the build failure:
```
diff --git a/include/ruby/internal/core/rstring.h b/include/ruby/internal/core/rstring.h
index 9cf9daa... -
06:10 AM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- Thank you for fixing the markdown in the comment 0.
On an affected machine, I was able to bisect the git repo between tags v3_3_9 and v3_3_10:
```
5a8d7642168f4ea0d9331fded3033c225bbc36c5 is the first bad commit
commit 5a8d7642168f... -
05:44 AM Bug #21655: segfault when building 3.3.10, regression from 3.3.9
- backtrace using a gentoo-built build with -ggdb3 added to CFLAGS
```
beans ~ # cd /var/tmp/portage/dev-lang/ruby-3.3.10/work/ruby-3.3.10/
beans /var/tmp/portage/dev-lang/ruby-3.3.10/work/ruby-3.3.10 # gdb --args ./miniruby -I./lib -... -
05:35 AM Bug #21655 (Open): segfault when building 3.3.10, regression from 3.3.9
- ref downstream bug https://bugs.gentoo.org/965095 - reporting upstream because I was able to reproduce the problem from ruby-3.3.10.tar.xz manually
build log excerpt; the rest will be provided as an attachment
```
gcc -O2 -pipe -m... -
11:35 PM Revision 0b7ea9c7 (git): YJIT: Prevent making a branch from a dead block to a live block
- I'm seeing some memory corruption in the wild on blocks in
`IseqPayload::dead_blocks`. While I unfortunately can't recreate the
issue, (For all I know, it could be some external code corrupting YJIT's
memory.) establishing a link between... -
11:27 PM Revision f2192cfd (git): ZJIT: Rename compile_side_exits to compile_exits
- so that it can be easily specified with `--zjit-dump-lir=`.
-
11:27 PM Revision 534aeaef (git): ZJIT: Dump Assembler on panic by default for dev builds
-
11:27 PM Revision 16a7a22c (git): ZJIT: Avoid cloning Assembler repeatedly
-
11:27 PM Revision 397cb107 (git): ZJIT: Suffix a label index to duplicated label names
-
11:27 PM Revision 8b289cde (git): ZJIT: Print operands with Display on side exit
-
11:27 PM Revision 1775447c (git): ZJIT: Refactor operand printer
-
07:44 PM Bug #21654: Set#new calls extra methods compared to previous versions
- mame (Yusuke Endoh) wrote in #note-5:
> > How about handling only `Range` and `Enumerator` (not `Enumerable`) for now?
> ...
I sent a pull request that only handles `Range` for now: https://github.com/ruby/ruby/pull/14990
This fixe... -
01:57 AM Bug #21654: Set#new calls extra methods compared to previous versions
- > How about handling only `Range` and `Enumerator` (not `Enumerable`) for now?
I think it would be better to handle only Range for now, and not Enumerator either. See https://bugs.ruby-lang.org/issues/21513#note-10 -
01:49 AM Bug #21654: Set#new calls extra methods compared to previous versions
- k0kubun (Takashi Kokubun) wrote in #note-1:
> How about handling only `Range` and `Enumerator` (not `Enumerable`) for now? Avoiding an extra DB query on ActiveRecord relations seems like a more important use case than preventing user-de... -
01:30 AM Bug #21654: Set#new calls extra methods compared to previous versions
- It seems to me that's an argument in favor of #17924 `Range#infinite?`
-
12:57 AM Bug #21654: Set#new calls extra methods compared to previous versions
- How about handling only `Range` and `Enumerator` (not `Enumerable`) for now? Avoiding an extra DB query on ActiveRecord relations seems like a more important use case than preventing user-defined `Enumerable` with an infinite length from...
-
12:24 AM Bug #21654 (Open): Set#new calls extra methods compared to previous versions
- I'm trying to test Ruby 3.5.0 with our Rails application and we've found that `Set.new` is now causing extra database queries to happen.
The changes in d4020dd5faf call "size" on enumerable objects that are passed to the `new` method,... -
07:22 PM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- With the commit from @andremuta:
Without RUBY_MN_THREADS:
```
Running 15s test @ http://localhost:9292
12 threads and 16 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.00ms 1.52ms 11.44ms 82.6... -
06:35 PM Misc #21656: Exclude dependabot PRs from automated gem release notes
- Earlopain (Earlopain _) wrote in #note-4:
> `net-imap` actually uses it already: https://github.com/ruby/net-imap/blob/079167e99b47957d53c71c927ebbca537aae39d1/.github/release.yml#L23. The name does need to be `dependabot[bot]` I think.... -
08:55 AM Misc #21656 (Assigned): Exclude dependabot PRs from automated gem release notes
- Thanks both.
I will try that template at next gem release. -
08:35 AM Misc #21656: Exclude dependabot PRs from automated gem release notes
- Yeah! I just found that as well: https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes
I was thinking about something a bit more comp... -
08:30 AM Misc #21656: Exclude dependabot PRs from automated gem release notes
- There is a configuration file to control which labeled PRs make it into the automated release notes and which ones should be excluded. I can help set that up if it will be helpful.
-
08:26 AM Misc #21656: Exclude dependabot PRs from automated gem release notes
- > I removed them manually if I found that.
Ah, I didn't know that, thanks! I did check some other release notes and was surprised that they were often missing.
> ...
I will think about this 👍. Unfortunatly the cli itself doesn't ha... -
08:24 AM Misc #21656: Exclude dependabot PRs from automated gem release notes
- I removed them manually if I found that.
If you have an idea to exclude that with `gh release create --generate-note`, I will add it to our release workflow.
-
08:12 AM Misc #21656 (Closed): Exclude dependabot PRs from automated gem release notes
- Ruby has many gems, and many of them have release notes generated with the github command line instead of being written by a human. Usually that is fine, I don't have much of a problem with that approach. But what is less ideal is that g...
-
06:25 PM Revision eed9441a (git): Revert "CI: Re-enable Ubuntu arm with CAPI check"
- This reverts commit 02fd62895d9a13f56253521dedd80e39d4eafbb5.
It stopped working again. -
04:49 PM Revision 0d9f8580 (git): ZJIT: Fix LoadIvarExtended test (#14989)
- 03:17 PM Revision fcd7da15 (git): ZJIT: Introduce a better LIR printer (#14986)
-
02:52 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- Thank you! The version number itself doesn’t affect anything on our side. Whether it’s released as 3.5 or 4.0, both are perfectly fine. I just wanted to make sure I’m not missing an extra release in between.
-
01:48 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- It seems like the next version of Ruby will be branded as 4.0, but that is completely a decision for @matz to make as he wishes. Ruby version numbers don't follow semantic versioning, so 4.0 doesn't mean that there will be breaking chang...
-
01:41 PM Misc #21657: Question: Is Ruby 4.0 planned for December 2025 or later?
- Thank you for the clarification!
I just wanted to make sure there isn’t another release already planned beyond 3.5. For example, a 4.0 version with some other significant changes.
If it’s purely a versioning matter and 3.5 remains th... -
12:50 PM Misc #21657 (Feedback): Question: Is Ruby 4.0 planned for December 2025 or later?
- dmitry.pogrebnoy (Dmitry Pogrebnoy) wrote:
> Having a clear, public roadmap would really help library and tooling authors (like IDE vendors) prepare for upcoming versions and provide better support.
I'm curious what kind of problems ... -
11:07 AM Misc #21657 (Feedback): Question: Is Ruby 4.0 planned for December 2025 or later?
- Hello Ruby core team,
I noticed that the first preview of Ruby 3.5 has been released, and at the same time there’s some talk in the community about Ruby 4.0 potentially arriving in December 2025.
Could you please clarify what the cur... -
01:33 PM Bug #21618: Allow to use the build-in prism version to parse code
- I implemented support for `Prism.parse(foo, version: "current")` in https://github.com/ruby/prism/pull/3679. This can be closed now from my perspective (I did not yet make use of that anywhere but plan to work on that)
-
11:35 AM Revision cee4a46c (git): Use the given `TMPDIR`
-
11:02 AM Bug #21645: Can't `require "resolve"` on Windows under Bundler without warnings
- I approximatly applied your patch with the following in github ci:
```rb
- name: Patch
run: (Get-Content D:/rubyinstaller-head-x64/lib/ruby/3.5.0+4/win32/resolv.rb).Replace('LoadError', 'LoadError, Gem::MissingSpecError') ... -
08:54 AM Bug #21645 (Assigned): Can't `require "resolve"` on Windows under Bundler without warnings
- It should fallback to pwsh implementation under `bundle` environment.
```
diff --git ext/win32/lib/win32/resolv.rb ext/win32/lib/win32/resolv.rb
index 226de7cba36..dae53baf118 100644
--- ext/win32/lib/win32/resolv.rb
+++ ext/win3... -
10:43 AM Revision c9018482 (git): win32: Extract `FILETIME` related constants.
-
10:43 AM Revision 2096ca80 (git): win32: Optimize `FIMETIME` calculations
- Assume that `FILETIME` and `ULARGE_INTEGER::u` are the same layout
actually. -
10:41 AM Revision 606abf2f (git): Clean extension libraries copied for the namespace
-
10:03 AM Revision e49e0bb6 (git): [ruby/date] Remove archaic conditions
- `Time#nsec` and `Time#subsec` were both introduced in Ruby 1.9.
https://github.com/ruby/date/commit/2c310d9f5c -
10:03 AM Revision 0f629083 (git): [ruby/date] Prefer `method_defined?` over `allocate.respond_to?`
- https://github.com/ruby/date/commit/fd8e3725f8
-
08:58 AM Bug #21625 (Closed): Allow IO#wait_readable together with IO#ungetc even in text mode
- Applied in changeset commit:git|12350eb9e0d3317da57b5a37c0c2810946b48850.
----------
[Bug #21625] Allow io/wait methods with `IO#ungetc` in text mode -
08:27 AM Bug #21625: Allow IO#wait_readable together with IO#ungetc even in text mode
- https://github.com/ruby/ruby/pull/14985
-
08:23 AM Revision 12350eb9 (git): [Bug #21625] Allow io/wait methods with `IO#ungetc` in text mode
-
07:48 AM Revision 6e618a2c (git): Added repl_type_completor to bundled gems section
- 07:36 AM Revision b55e9115 (git): Update default gems list at 8f0b9b27cec1ec187c6357586dc98d [ci skip]
-
07:34 AM Revision 8f0b9b27 (git): [ruby/fileutils] v1.8.0
- https://github.com/ruby/fileutils/commit/29de582f68
- 07:10 AM Revision b8f7c18a (git): Update default gems list at 337c4bc16384fa44f7a486d550461a [ci skip]
-
07:08 AM Revision 337c4bc1 (git): [ruby/date] v3.5.0
- https://github.com/ruby/date/commit/d535f7e85f
- 06:58 AM Revision bb5f5a52 (git): Update default gems list at 2dcf1f74a417c01c64f45f1ea73d93 [ci skip]
-
06:50 AM Revision 2dcf1f74 (git): [ruby/timeout] v0.4.4
- https://github.com/ruby/timeout/commit/f42b47d383
- 06:31 AM Revision 582475b3 (git): Update default gems list at 4f223b72a9976cd015c4d926297c61 [ci skip]
-
06:30 AM Revision 4f223b72 (git): [ruby/zlib] Bump up v3.2.2
- https://github.com/ruby/zlib/commit/5d50b223b1
-
05:26 AM Revision f8d7482d (git): Fix for other than UTF-8 environments
-
05:26 AM Revision 103e91a0 (git): Remove alternatives for ruby 1.8 and earliers
-
05:12 AM Revision e1a0bcde (git): Added missing rubygems pages for default/bundled gems
-
01:52 AM Bug #21513 (Open): Converting endless range to set hangs
- The fix introduced another inconsistency:
```
$ ruby -e 'Enumerator.new(Float::INFINITY) {|g| loop { g << 1 } }.to_set'
-e:1:in 'Enumerable#to_set': cannot initialize Set from an object with infinite size (ArgumentError)
fr... - 01:47 AM Revision 7bc72469 (git): [DOC] Update refinements.rdoc
- removes documentation for the activation order of `include` and `prepend` inside a refinement
-
01:24 AM Revision e4219e27 (git): Fix flaky require test
-
01:20 AM Bug #21652 (Closed): Marshal#dump documentation out-of-date/unclear regarding Data class
- Applied in changeset commit:git|d17ce4bd05dc05d48f5f4bc75171fcebda1678ed.
----------
[Bug #21652] [DOC] Update unmarshalable object list
The `Data` mentioned here was the old `T_DATA` class, not the current
extended `Struct`. -
01:07 AM Revision d17ce4bd (git): [Bug #21652] [DOC] Update unmarshalable object list
- The `Data` mentioned here was the old `T_DATA` class, not the current
extended `Struct`. -
01:06 AM Revision c4e090de (git): test_commit_email.rb: Clean up temporary files
-
12:11 AM Revision f8a333ae (git): ZJIT: Add type checker to HIR (#14978)
- Allow instructions to constrain their operands' input types to avoid
accidentally creating invalid HIR.
10/28/2025
-
11:48 PM Revision 80be97e4 (git): ZJIT: Fill `cfp->pc` with trap value for C methods in debug builds
-
11:40 PM Revision 9f4a76ff (git): Add a custom error class to TestString#test_encode_fallback_raise_memory_leak
- This prevents a generic RuntimeError from being raised so we can ensure
that the correct error is being rescued. -
11:40 PM Revision 4925bec6 (git): Fix TestString#test_encode_fallback_raise_memory_leak
- The method and aref cases need to accept a parameter.
-
11:35 PM Revision 7428dc73 (git): ZJIT: Migrate an arm64 register from emit to split
-
11:35 PM Revision d6d095e2 (git): ZJIT: Rename SCRATCH_OPND to SCRATCH0_OPND for x86_64
- 10:25 PM Revision 8dc276f3 (git): Bump github.com/microsoft/vcpkg from master to 2025.10.17
- Bumps [github.com/microsoft/vcpkg](https://github.com/microsoft/vcpkg) from master to 2025.10.17. This release includes the previously tagged commit.
- [Release notes](https://github.com/microsoft/vcpkg/releases)
- [Commits](https://gith... - 10:24 PM Revision 5a14999d (git): Bump actions/upload-artifact from 4 to 5
- Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)
---
... -
09:36 PM Feature #21653 (Open): Unify Hash methods and preserving default/default_proc
- All the Hash methods that return a new instance of Hash don't preserve the `default` and `default_proc` properties except `#compact` and `#merge`:
```ruby
h = {a: 1}
h.default = 0
h.compact[:f] == 0 # => true
h.merge(b: 2)[:... - 08:47 PM Revision afb0d431 (git): ZJIT: Drop --seed from test-all on CI (#14976)
-
08:45 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Eregon (Benoit Daloze) wrote in #note-27:
> If the gem is a noop then of course it would not matter, but I'm unsure if the gem should be a noop.
I can't answer if it "should", but at least that's how it works with `set`, so at least ... -
07:02 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- If the gem is a noop then of course it would not matter, but I'm unsure if the gem should be a noop.
There is also the issue that core already uses the pathname C extension, and loading the gem pathname C extension might cause issues, i... -
02:34 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Ah, thank you very much, now I see it.
So this #4 issue could be solved by implementing the 3 methods as shims that load the necessary dependencies, which then allows pathname to do `rb_provide("pathname.rb")` -
02:06 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Dan0042 (Daniel DeLorme) wrote in #note-24:
> So the issue here is that pathname doesn't use this `rb_provide` ?
pathname does use `rb_provide`:
```
$ git grep rb_provide pathname.c
pathname.c: rb_provide("pathname.so");
```... -
01:15 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- > It's normal behavior when moving from stdlib to core that `rb_provide` is used to make it appear that the library has already been loaded. Having `set.rb` in `$"` makes it so code that uses `require 'set'` does not cause files to be lo...
-
09:20 AM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Dan0042 (Daniel DeLorme) wrote in #note-19:
> But _why_? If there's an actual problem with this approach I would like to hear it. If it's just because it "feels unclean" then I would like the core team to prioritize usefulness over these... -
01:02 AM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Dan0042 (Daniel DeLorme) wrote in #note-21:
> But that doesn't happen with `require "set"`. In fact, the "set" gem appear to never be loaded at all?! Sorry, I can't make sense of these divergent behaviors.
It's normal behavior when m... - 08:18 PM Revision d0c7234b (git): ZJIT: Support ParallelMov into memory (#14975)
-
08:14 PM Revision 599de290 (git): YJIT, ZJIT: Fix unnecessary `use` of macros
- https://github.com/ruby/ruby/actions/runs/18887695798/job/53907237061?pr=14975
-
07:49 PM Revision 882e1677 (git): Update to ruby/spec@3bc45ba
-
06:51 PM
Feature #20205: Enable `frozen_string_literal` by default
- ______________________________________________
-
06:44 PM Feature #20205: Enable `frozen_string_literal` by default
- matz (Yukihiro Matsumoto) wrote in #note-75:
> Probably we would have Ruby4.0 in 2025, but I am not going to make frozen-string-literal default this year.
That's unfortunate, but OTOH it makes sense because first we need to make the ... -
06:48 PM Misc #21647: DevMeeting-2025-11-13
- * [Feature #20205] Enable `frozen_string_literal` by default (eregon)
* Let's decide in which release the chilled string deprecation warning shows up regardless of verbosity level (R1) to make progress on this. How about 4.0?
* Oth... -
06:36 PM Revision 8a765975 (git): ZJIT: Split HIR tests (#14967)
- `hir.rs` was getting rather large, so I've opted to move the inline tests into their own files. This should also help when looking for where to put your tests, as the optimization tests have a dedicated file.
Future follow up work could... - 05:37 PM Revision a9d42f7c (git): ZJIT: Print percentage of GuardType failure
- 05:37 PM Revision 2c90da46 (git): ZJIT: Count GuardType instructions
- We can measure how many we can remove by adding type information to C
functions, etc. -
05:08 PM Bug #21652 (Closed): Marshal#dump documentation out-of-date/unclear regarding Data class
- With the introduction of the `Data` class in Ruby 3.2, the `Marshal#dump` documentation is confusing since it claims that "Marshal can’t dump ... an instance of ... Data". It is even cross-linked to the new `Data` class. However, and tha...
-
04:25 PM Revision f6cd20c6 (git): ZJIT: Split frame_setup_teardown tests
-
04:25 PM Revision 0e1d99ce (git): ZJIT: Move c_stack_slots to Assembler
-
04:25 PM Revision cc051ef0 (git): ZJIT: Simplify Assembler constructors
-
04:25 PM Revision b463c1a9 (git): ZJIT: Stop computing offset on gen_push_opnds
- Once we add register spill, the C stack will have not only spilled basic
block params but also spilled VRegs.
We won't know how many stack slots are used for spilled VRegs until
alloc_regs, so you can't compute an offset as of writing LIR. -
04:25 PM Revision 9b3df50d (git): ZJIT: Allow ALLOC_REGS to have an odd number of regs
-
04:25 PM Revision b66c57be (git): ZJIT: Print unexpected operands on x86_64
-
04:24 PM Revision ec1b9bbd (git): ZJIT: Call test again after profiling it
- It's a call_threshold: 2 test
https://github.com/ruby/ruby/pull/14933#discussion_r2469731499 -
03:44 PM Revision 7a736545 (git): ZJIT: Specialize Array#pop for no argument case (#14933)
- Fixes https://github.com/Shopify/ruby/issues/814
This change specializes the case of calling `Array#pop` on a non frozen array with no arguments. `Array#pop` exists in the non-inlined C function list in the ZJIT SFR performance burndown... - 02:49 PM Revision 2e2f31c8 (git): ZJIT: Add IsBitNotEqual and inline BasicObject#!=
- 02:49 PM Revision c2bef01b (git): ZJIT: Optimize Kernel#===
- 02:49 PM Revision e973baa8 (git): ZJIT: Add BoxBool and remove CCall from BasicObject#==
- 02:49 PM Revision a4f8afce (git): ZJIT: Use FnProperties::default()
- 02:49 PM Revision 2a6e5d7d (git): ZJIT: Allow both inlining and annotating properties
- 02:49 PM Revision 74255204 (git): ZJIT: Remove redundant annotation
- 02:49 PM Revision 3624031b (git): ZJIT: Inline Kernel#nil? and NilClass#nil?
- We can fully remove the CCall now.
-
12:02 PM Revision b0825d78 (git): Restore old version of Gem::Installer#install for default gems installation
-
11:06 AM Revision 52451798 (git): [ruby/rubygems] Simulate default gems manually
- https://github.com/ruby/rubygems/commit/c3cc38c72c
-
11:06 AM Revision 3afe8ed4 (git): [ruby/rubygems] Introduce default_spec_dir when it's not provided
- https://github.com/ruby/rubygems/commit/e9bd59699c
-
11:06 AM Revision 7bd7bcbf (git): [ruby/rubygems] Removed default bundler spec from specification directory
- https://github.com/ruby/rubygems/commit/6fbbde48e2
-
11:06 AM Revision ceb2b569 (git): [ruby/rubygems] Added install_default_gem method for testing
- https://github.com/ruby/rubygems/commit/81dbd42abf
-
11:06 AM Revision d67aba8a (git): [ruby/rubygems] Completely removed install_as_default feature
- https://github.com/ruby/rubygems/commit/15e46a3a68
-
11:06 AM Revision 523474bd (git): [ruby/rubygems] Deprecate --default option
- https://github.com/ruby/rubygems/commit/55745ee0f8
-
10:43 AM Bug #21651 (Feedback): replacing a string with one backslash with two backslashes
- From [String@Substitution+Methods]:
> Note that <tt>\\\\</tt> is interpreted as an escape, i.e., a single backslash.
> ...
This is what happens at the first line.
Since a space after a backslash is not a valid escape, the result a... -
09:10 AM Bug #21651 (Feedback): replacing a string with one backslash with two backslashes
- ruby 2.7.8p225 (2023-03-30 revision 1f4d455848) [x86_64-linux]
ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux]
```
irb(main):002> "\\".gsub("\\", "\\\\")
=> "\\"
irb(main):003> "\\".gsub("\\", "\\ \\")
=> "\\ \\... -
10:11 AM Feature #21650: Performance regression: Rational#floor(ndigits) extremely slow for huge ndigits in Ruby 3.4 (ok in 3.2)
- Sure, thanks for clarification and fast reply.
-
09:29 AM Feature #21650 (Feedback): Performance regression: Rational#floor(ndigits) extremely slow for huge ndigits in Ruby 3.4 (ok in 3.2)
- Thank you for your reply.
I found a clearer case:
```ruby
p Rational(1, 3).floor(2**1) #=> (33/100)
p Rational(1, 3).floor(2**2) #=> (3333/10000)
p Rational(1, 3).floor(2**3) #=> (33333333/100000000)
p Rational(1, 3).floor(2**4... -
09:13 AM Feature #21650: Performance regression: Rational#floor(ndigits) extremely slow for huge ndigits in Ruby 3.4 (ok in 3.2)
- mame (Yusuke Endoh) wrote in #note-3:
> Thank you for the report.
> ...
1. It wasn't involved in any production usage, we have fuzzy tests which generated this and it was in our test suite. Therefore I was surprised by performance degr... -
09:03 AM Feature #21650: Performance regression: Rational#floor(ndigits) extremely slow for huge ndigits in Ruby 3.4 (ok in 3.2)
- Thank you for the report.
As the warning indicates, prior to Ruby 3.4 (up to 3.3), attempting to generate a huge `Integer` would return `Float::INFINITY`. Ruby 3.4 removed this inaccurate truncation, which is why it now takes longer. (#... -
08:21 AM Feature #21650 (Feedback): Performance regression: Rational#floor(ndigits) extremely slow for huge ndigits in Ruby 3.4 (ok in 3.2)
- ## Summary
`Rational#floor(ndigits)` with a very large positive ndigits takes tens of seconds in Ruby 3.4, while it returns essentially instantly in Ruby 3.2. Reproducible on macOS and Linux. Looks like a missing fast‑path for rationals... -
08:28 AM Revision a27f430d (git): [ruby/rubygems] Make more shortly with https://rubyonrails.org/conduct
- https://github.com/ruby/rubygems/commit/62ba34d6c9
-
08:28 AM Revision 7550f7e4 (git): [ruby/rubygems] Update new gem CoC and prompt
- Prompt wording "prefer safe, respectful, productive, and collaborative spaces" is copied verbatim from Ruby Community Conduct Guideline.
https://github.com/ruby/rubygems/commit/6cdf5f6d8a - 07:50 AM Revision aab390aa (git): [ruby/json] Use Vector API in the Java Extension
- Overview
This PR uses the [jdk.incubator.vector module](https://docs.oracle.com/en/java/javase/20/docs/api/jdk.incubator.vector/jdk/incubator/vector/package-summary.html) as mentioned in [issue #739](https://github.com/ruby/json/issues/... -
07:28 AM Revision d82a590a (git): sync_default_gems.rb: Show `git diff` on failed sync
-
04:07 AM Revision 0f5c69b3 (git): [DOC] Moved non ASCII documents to separated files
- C99 does not declare ways to designate the charset encoding of the
source file. We can assume just US-ASCII characters will be safe. -
04:07 AM Revision 02d53bab (git): [ruby/stringio] [DOC] Doc for StringIO#each_byte
- (https://github.com/ruby/stringio/pull/157)
https://github.com/ruby/stringio/commit/624ce56b4e
Co-authored-by: Sutou Kouhei <kou@cozmixng.org> - 03:58 AM Revision d864bd1a (git): Update default gems list at b3191d204b8b4fe4b29cf73cd09a1b [ci skip]
-
03:57 AM Revision b3191d20 (git): [ruby/erb] Version 5.1.3
- https://github.com/ruby/erb/commit/e8d382a83e
- 03:50 AM Revision 4511e962 (git): Update default gems list at f7eee3427dcc8b644b9fd6c854f3e1 [ci skip]
-
03:49 AM Revision f7eee342 (git): [ruby/erb] Version 5.1.2
- https://github.com/ruby/erb/commit/daa0e8712f
-
03:09 AM Revision 218c2805 (git): [ruby/stringio] [DOC] Doc for StringIO#each_codepoint
- (https://github.com/ruby/stringio/pull/159)
https://github.com/ruby/stringio/commit/6628d4837b
Co-authored-by: Sutou Kouhei <kou@cozmixng.org> -
03:06 AM Revision 9fd32ee4 (git): [ruby/stringio] [DOC] Doc for StringIO#each_char
- (https://github.com/ruby/stringio/pull/158)
https://github.com/ruby/stringio/commit/ec6bf815ae
Co-authored-by: Sutou Kouhei <kou@cozmixng.org> -
03:06 AM Misc #21646 (Closed): Propose Luke Gruber as a Ruby committer
- I've finished to prepare Luke's account. Please let me know if you have any issues for developing Ruby.
-
03:05 AM Misc #21609 (Closed): Propose Stan Lo (@st0012) as a core committer
- I've finished to prepare Stan's account. Please let me know if you have any issues for developping Ruby.
-
01:19 AM Revision 836fc00e (git): [DOC] Tweaks for String#swapcase
-
01:18 AM Revision e3c4298d (git): [DOC] Tweaks for String#swapcase!
-
01:14 AM Revision bf2663ce (git): [DOC] Tweaks for String#sum
10/27/2025
-
11:25 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- > The issue with `Pathname` is that it was not fully converted to core, only partially converted.
Yes that's the issue with the 3 methods missing from core Pathname, but @eregon's point 4 was about conflicts when `require "pathname"` ... -
07:45 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Dan0042 (Daniel DeLorme) wrote in #note-19:
> Doesn't `Set` have the same problems?
No.
> ...
In Ruby 3.2, `set` was default gem, and `Set` was an autoloaded constant. The `set` library was not required when a method was called (u... -
06:37 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- > That's consensus with akr and me. We should avoid loading other libraries by simply calling methods from the embedded core classes.
But *why*? If there's an actual problem with this approach I would like to hear it. If it's just bec... - 10:57 PM Revision e5e32acc (git): ZJIT: Annotate Kernel#frozen? as returning BoolExact
- 10:57 PM Revision c3c25443 (git): ZJIT: Annotate Symbol#to_s and Symbol#name as returning StringExact
- 10:57 PM Revision 46525fa7 (git): ZJIT: Add return_type to inlined InvokeBuiltin
- 10:57 PM Revision 3fb96ee9 (git): ZJIT: Inline method calls to ISEQs that just do leaf Primitive calls
-
10:53 PM Revision 8d45e1f3 (git): ZJIT: Fix internal compiler error looking up profiles for trace_getinstancevariable (#14969)
- We treat getinstancevariable differently from other opcodes: it does not
look at the stack for its self operand, but instead looks at
`cfp->self`. In some cases, we might see the `trace_` variant in the
front-end, so make sure we treat t... -
08:45 PM Revision d97fb3b4 (git): ZJIT: Print out full path to --zjit-trace-exits output (#14966)
- * ZJIT: Print out full path to --zjit-trace-exits output
This helps with any `chdir`-related issues.
* Don't include dot
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
---------
Co-authored-by: Takashi Kokubun <takashikkbn@... -
08:15 PM Misc #21646 (Assigned): Propose Luke Gruber as a Ruby committer
-
08:15 PM Misc #21609 (Assigned): Propose Stan Lo (@st0012) as a core committer
-
07:56 PM Revision 68d9f7c3 (git): ZJIT: Remove unnecessary 'static annotation from gen_hir_type.rb
-
07:56 PM Revision a12aa2b5 (git): ZJIT: Since Param is unit struct, elide destructuring
-
07:56 PM Revision ac57a5c4 (git): ZJIT: Use .is_empty() for clarity
-
07:56 PM Revision fa0eab28 (git): ZJIT: Use .first() in lieu of .get(0)
-
07:56 PM Revision aabec60c (git): ZJIT: Elide unnecessary 'static annotation
-
07:56 PM Revision 79db7d52 (git): ZJIT: Remove unnecessary `as` casts
-
07:56 PM Revision c112368e (git): ZJIT: Use std::ptr::null instead of casts
-
07:56 PM Revision 5c4d76c9 (git): ZJIT: Remove unnecessary #[test] annotation
-
07:56 PM Revision a395d9c0 (git): ZJIT: Simplify complex type to BranchEncoder
-
07:56 PM Revision 1d897f56 (git): ZJIT: Elide unnecessary return statements
- 07:26 PM Revision 74c3bd77 (git): ZJIT: Remove a duplicated annotation (#14968)
-
05:33 PM Bug #21649 (Open): Ractors can access non-shareable object through singleton classes
- If we send a non-shareable object into a Ractor, it needs to be copied.
```
❯ ruby -W0 -e 'Ractor.new(p(Object.new)) { |o| p(o) }.join'
#<Object:0x00000001240f8cf8>
#<Object:0x00000001240f8870>
```
However we're able to instead... -
04:20 PM Bug #21648: [prism] ruby crashes for `for * in [10]; end`
- @kddnewton can you mark for backport? Thanks!
-
03:28 PM Bug #21648 (Closed): [prism] ruby crashes for `for * in [10]; end`
- Applied in changeset commit:git|0b0da6c4b26f80ad6985722d3fc0f5cdee09125d.
----------
Correctly compile splats in for-loop index in prism
Fixes [Bug #21648]
This is a followup to https://github.com/ruby/ruby/pull/13597.
The added test ... -
12:23 PM Bug #21648: [prism] ruby crashes for `for * in [10]; end`
- https://github.com/ruby/ruby/pull/14963
-
10:39 AM Bug #21648 (Closed): [prism] ruby crashes for `for * in [10]; end`
- ```sh
$ ruby -e "for * in [10]; end"
-e:1: [BUG] Stack consistency error (sp: 15, bp: 14)
ruby 3.4.6 (2025-09-16 revision dbd83256b1) +PRISM [x86_64-linux]
-- Control frame information ----------------------------------------------... -
03:28 PM Revision 0b0da6c4 (git): Correctly compile splats in for-loop index in prism
- Fixes [Bug #21648]
This is a followup to https://github.com/ruby/ruby/pull/13597.
The added test passed but didn't emit the same instructions.
This also handles bare splats and aligns instructions for all cases -
11:47 AM Revision 308fb9c8 (git): Fix a comment [ci skip]
-
09:22 AM Revision 2a9d15b9 (git): [ruby/json] parser.c: Fix indentation in json_decode_integer
- https://github.com/ruby/json/commit/f228b30635
-
09:21 AM Revision 14cbe0de (git): [ruby/json] Use locale indepenent version of `islapha`
- https://github.com/ruby/json/commit/1ba1e9bef9
-
07:53 AM Revision d0a6780d (git): [ruby/stringio] [DOC] Split the examples `StringIO` into the document file
- https://github.com/ruby/stringio/commit/04ba28af00
-
07:35 AM Revision d17d49d4 (git): [ruby/rubygems] bundler_4_mode always return true
- https://github.com/ruby/rubygems/commit/b2e1810067
-
07:35 AM Revision 79684cea (git): [ruby/rubygems] Drop to support old git
- https://github.com/ruby/rubygems/commit/687ffd7265
-
07:33 AM Revision 6a1644dd (git): [ruby/rubygems] If we use shared GEM_HOME and install multiple versions, it may cause unexpected test failures.
- ```
Fetching gem metadata from https://gem.repo4/.
Resolving dependencies...
Resolving dependencies...
# $? => 0
cannot load such file -- diff/lcs
```
https://github.com/ruby/rubygems/commit/668b300261 -
07:33 AM Revision 504a1ba7 (git): [ruby/rubygems] Use dummy gem instead of uri.
- If we install uri-1.0.4 as default gems. The example may be failed with
version miss-match.
https://github.com/ruby/rubygems/commit/fd2dcb502b -
06:54 AM Revision 1b57e557 (git): [ruby/openssl] test: remove unused small test keys
- Previous commits removed all usages of those small keys.
https://github.com/ruby/openssl/commit/f9d87d7912 -
06:54 AM Revision d0ea9c0c (git): [ruby/openssl] ssl: update keys used in tests
- Use generic keys whenever possible.
https://github.com/ruby/openssl/commit/73d6a25360 -
06:54 AM Revision a9ba78e4 (git): [ruby/openssl] pkey: update keys used in tests
- Use generic keys whenever possible.
https://github.com/ruby/openssl/commit/90d6af60b9 -
06:54 AM Revision f90ca1a0 (git): [ruby/openssl] ocsp: update keys used in tests
- Use generic keys whenever possible.
https://github.com/ruby/openssl/commit/cc4d40525c -
06:54 AM Revision 709aa728 (git): [ruby/openssl] ns_spki: update keys used in tests
- Use generic keys whenever possible.
https://github.com/ruby/openssl/commit/ef4fa5e9b4 -
06:54 AM Revision bf244356 (git): [ruby/openssl] asn1: update keys used in tests
- Use generic keys whenever possible.
https://github.com/ruby/openssl/commit/689fc271b1 -
06:54 AM Revision 1c709970 (git): [ruby/openssl] x509: update keys used in tests
- Replace fixed-sized RSA keys with the generic rsa-{1,2,3}.pem keys.
Those test cases do not depend on specific keys or key sizes, and just
need several different keys.
Replace DSA keys with EC keys so that we can run more tests in the F... -
06:54 AM Revision e5ac2b89 (git): [ruby/openssl] cipher: various docs improvements
- The EVP_CIPHER_CTX = OpenSSL::Cipher interface for AEAD ciphers is
notoriously complicated and full of pitfalls. I tried to clarify docs
so that users can hopefully connect the Ruby methods with the
corresponding OpenSSL man pages more e... -
06:36 AM Revision ecf5aa18 (git): [ruby/openssl] Sync History.md
-
06:33 AM Revision b839deec (git): [ruby/openssl] Check NULL values for deprecated EVP_PKEY_get0() functions
- In OpenSSL <= 1.1.1, EVP_PKEY_get0() always returned a valid object, so
a NULL check was not necessary. In OpenSSL 3.0, the function can return
NULL (https://docs.openssl.org/3.0/man7/migration_guide/#deprecated-function-mappings),
so gu... -
06:21 AM Revision db59619c (git): [ruby/rubygems] Fixup
- https://github.com/ruby/rubygems/commit/9b3a5a8ae9cd
https://github.com/ruby/rubygems/commit/8f6eb4ac64 - 05:51 AM Revision f6d2aef3 (git): [ruby/openssl] Update link to OpenSSL configuration file docs
- https://github.com/ruby/openssl/commit/02ff964114
-
04:24 AM Revision e221a4b7 (git): [ruby/stringio] [DOC] Doc for StringIO#each
- (https://github.com/ruby/stringio/pull/154)
https://github.com/ruby/stringio/commit/eca2588274 -
04:23 AM Revision 2dd01c8f (git): [ruby/stringio] [DOC] Tweaks for StringIO#close_write
- (https://github.com/ruby/stringio/pull/150)
https://github.com/ruby/stringio/commit/ea6e36f797
Co-authored-by: Sutou Kouhei <kou@cozmixng.org> -
03:42 AM Revision a1a3857c (git): [ruby/win32-registry] Use pathspecs to select needed files in the gem file
- Exclude other git management files too.
https://github.com/ruby/win32-registry/commit/3be0188111 - 03:02 AM Revision 342dfd78 (git): [ruby/resolv] win32/resolv: fix loading of `NV Domain`
- https://github.com/ruby/resolv/commit/da14f1f2fc
-
01:52 AM Revision 4bd9cbd3 (git): Omit unknown DNS issue of macOS 26.1 beta
- ```
TestResolvDNS#test_no_server:
Test::Unit::ProxyError: Timeout::Error
/path/to/ruby/test/resolv/test_dns.rb:531:in 'TestResolvDNS#test_no_server'
``` -
01:02 AM Revision fcf8b10b (git): [ruby/stringio] [DOC] Tweaks for StringIO#close_read
- (https://github.com/ruby/stringio/pull/149)
https://github.com/ruby/stringio/commit/11995db341 -
01:02 AM Revision daaa09bc (git): [ruby/stringio] [DOC] Tweaks for StringIO.closed_read?
- (https://github.com/ruby/stringio/pull/152)
https://github.com/ruby/stringio/commit/7ded426718 -
01:01 AM Revision 947e5baa (git): [ruby/stringio] [DOC] Tweaks for StringIO.closed_write?
- (https://github.com/ruby/stringio/pull/153)
https://github.com/ruby/stringio/commit/3e9d576441
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
10/26/2025
-
10:59 PM Revision 52ea2220 (git): Fix segfault when moving nested objects between ractors during GC
- Fixes a segmentation fault when moving nested objects between ractors with GC stress enabled and YJIT.
The issue is a timing problem: `move_enter` allocates new object shells but leaves their contents uninitialized until `move_leave` co... -
10:46 PM Bug #21560: RUBY_MN_THREADS=1 causes large performance regression in Puma 7
- Sent a PR to fix this https://github.com/ruby/ruby/pull/14952
-
07:27 PM Revision b66fbd59 (git): Make rb_vm_ccs_invalidate_and_free static
-
07:04 PM Revision 9e49ee79 (git): [DOC] Tweaks for String#succ!
-
07:04 PM Revision 5c683bd9 (git): [DOC] Tweaks for String#succ
-
06:43 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- Longtime rubyist here. I am the author of one of the Pathname PRs that kickstarted this discussion (#64). My PR adds the following methods to Pathname:
``` ruby
# these all use FileUtils
def mkdir_p(...)
def ln(...)
def ln_s(...)
... -
12:38 PM Bug #21640: Core Pathname is missing 3 methods / is partially-defined
- OK, I've made a PR to document that in https://github.com/ruby/ruby/pull/14953.
But it's just a workaround, it doesn't address any of the problems.
It doesn't address what happens to the pathname gem and the various problems I mentio... -
01:03 PM Revision 7690309a (git): Mention that `require 'pathname'` is necessary for #find, #rmtree and .mktmpdir
- * See https://bugs.ruby-lang.org/issues/21640#note-16
- 08:49 AM Revision f53b8194 (git): Stop deleting the reference from superclass when replacing classext.
- Calling the usual rb_iclass_classext_free() causes SEGV because
duplicating a newer classext of iclass had set the reference from superclass
to the newer classext, but calling rb_iclass_classext_free() deletes it. - 08:49 AM Revision 1c81bbf0 (git): free the entry after deleting the reference
- 08:49 AM Revision be118cf9 (git): classext replacement never happen on non-iclass classes
- 08:49 AM Revision efe9a3cd (git): Add several very basic tests to be run with RUBY_NAMESPACE=1 on CI
- To detect breaking namespace features on CI.
-
07:05 AM Revision e3a71751 (git): [ruby/stringio] [DOC] Tweaks for StringIO#closed?
- (https://github.com/ruby/stringio/pull/151)
https://github.com/ruby/stringio/commit/94bd4a3d87