Project

General

Profile

Activity

From 03/07/2025 to 03/13/2025

03/13/2025

10:38 PM Bug #21184 (Rejected): SyntaxError when combining `in` with inline hash-rocket (`=>`)
I believe the following should be valid syntax but it's throwing a `SyntaxError`:
``` ruby
{ a: 1 } in { a: 1 } # => true
{ a: 1 } in { a: Integer } # => true
pattern = { "a" => 1 }; { "a" => 1 } in pattern # => true
{ "a" => 1 } in...
jtannas (Joel Tannas)
10:21 PM Revision ae7890df (git): Use the EC parameter in instructions.
The forwarding instructions should use the `ec` parameter passed to
vm_exec_core instead of trying to look up the EC via `GET_EC()`. It's
cheaper to get the local than to try looking up a global
tenderlovemaking (Aaron Patterson)
05:18 PM Feature #21042: Add and expose Thread#memory_allocations memory allocation counters
> It should be similar to GC.stat.
> ...
What about something like `GC.thread_stats(thread) # => {}`. This way it's understood that like `GC.stat`, the actual statistic are implementation dependent and can be there or not.
Now of cou...
byroot (Jean Boussier)
02:40 PM Feature #21042: Add and expose Thread#memory_allocations memory allocation counters
On JVM there is [`ThreadMXBean#getThreadAllocatedBytes`](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/ThreadMXBean.html#getThreadAllocatedBytes(long)).
There is no way on JVM to know the number of...
Eregon (Benoit Daloze)
11:45 AM Feature #21042: Add and expose Thread#memory_allocations memory allocation counters
I am positive, but I also feel this API should be implementation dependent. Not all implementations could easily provide this information.
Matz.
matz (Yukihiro Matsumoto)
09:49 AM Feature #21042: Add and expose Thread#memory_allocations memory allocation counters
Matz said he is positive on this proposal.
I have some considerations.
* Now current proposal doesn't increase much overhead. However I'm afraid that people want to introduce many measurements per threads, or per fibers, and it can...
ko1 (Koichi Sasada)
04:28 PM Revision 5cc43982 (git): Check LoadError first
The message from dlerror is not our concern. nobu (Nobuyoshi Nakada)
04:28 PM Revision adc7f046 (git): Added assertion strings with Xcode 16.3 beta
hsbt (Hiroshi SHIBATA)
03:45 PM Bug #20996 (Closed): Embed Ruby 3.4 Failure
> I don't believe the requirement to use RUBY_INIT_STACK is documented anywhere.
https://docs.ruby-lang.org/capi/en/master/de/d43/group__embed.html#gafc6055f8f4c68775a8a16a05c7c16e6e
> ...
The requirement is documented for ruby_ini...
alanwu (Alan Wu)
06:40 AM Bug #20996: Embed Ruby 3.4 Failure
Thanks for looking.
We were able to track down the issue, so I should close this issue.
The problem is starting with Ruby 3.4 if the macro `RUBY_INIT_STACK` is not included then the Rice unit tests will crash. Looking at that macro:
...
cfis (Charlie Savage)
03:40 PM Misc #21143: Speficy order of execution const_added vs inherited
The problem with `C = Class.new(parent)` is that it is a totally different mindset.
In the thing we are discussing, the interpreter is in charge.
In the other example, the user has decided to decouple both things. That anonymous class ...
fxn (Xavier Noria)
02:03 PM Misc #21143: Speficy order of execution const_added vs inherited
> I'm just not sure if it might cause compatibility issues, but I suggest to try, we are early in the dev cycle and can always revert if it causes problems.
I feat it might cause issues, as mentioned by @fxn but yes we can try. I shou...
byroot (Jean Boussier)
02:00 PM Misc #21143: Speficy order of execution const_added vs inherited
@byroot 's PR swaps `rb_class_inherited()` and `rb_const_set()`, so AFAIK the constant is not set yet in the "lexical parent/namespace" module when `inherited` is called.
It's kind of nice to keep "actual constant assignment" and "calli...
Eregon (Benoit Daloze)
01:51 PM Misc #21143: Speficy order of execution const_added vs inherited
> Nowadays, the constant exists in inherited (maybe your patch preserves this too?)
Right. That is something that can also have an impact. Right now my patch doesn't preserve this, but it would be possible to do it.
byroot (Jean Boussier)
01:16 PM Misc #21143: Speficy order of execution const_added vs inherited
> But if we still assign the name before calling inherited, then I think we can change the order without problem.
Just to clarify in the thread, it is more than the name. Nowadays, the constant exists in `inherited` (maybe your patch pr...
fxn (Xavier Noria)
12:31 PM Misc #21143: Speficy order of execution const_added vs inherited
Here's a tentative implementation, with some ruby specs added: https://github.com/ruby/ruby/pull/12927 byroot (Jean Boussier)
11:41 AM Misc #21143: Speficy order of execution const_added vs inherited
Calling `inherited` before `const_added` is doable and I doubt it would cause much backward compatibility issues except for one thing: the class being anonymous when `inherited` is called.
There are a number of `inherited` methods in ...
byroot (Jean Boussier)
07:38 AM Misc #21143: Speficy order of execution const_added vs inherited
In theory, there could be an incompatibility in projects using Zeitwerk.
Let's imagine you have a class `C` defined in `c.rb` and `C::X` defined in `c/x.rb`. If the parent class of `C` has an `inherited` hook, today that hook can refer ...
fxn (Xavier Noria)
06:37 AM Misc #21143 (Feedback): Speficy order of execution const_added vs inherited
I think @eregon's opinion here is reasonable. But I don't want to break any existing code. I'd like to experiment `inherited`-then-`const_added` order works (or not).
If it works, I'd like to change the order. If it doesn't I'like to ke...
matz (Yukihiro Matsumoto)
03:20 PM Revision 84f51eb0 (git): Use user defined parameterizing rules `args_tail_basic`
ydah (Yudai Takada)
02:44 PM Misc #21154: Document or change Module#autoload?
@mame thanks for considering.
I am not sure it would be a good idea in practice for the same reason it was decided to not do that when `Module#autoload` is invoked, it would be too costly.
Zeitwerk needs to keep track of these edge cas...
fxn (Xavier Noria)
02:10 PM Misc #21154 (Feedback): Document or change Module#autoload?
@fxn I think it makes sense. Would it help you if such a new API is introduced to determine if a file is currently being loaded? mame (Yusuke Endoh)
01:08 PM Misc #21154 (Closed): Document or change Module#autoload?
Applied in changeset commit:git|ee1f39ef882e7ce175794e6286c0dcafba0bfa35.
----------
Add a document to autoload
Users are responsible for avoiding circular autoload.
[Misc #21154]
mame (Yusuke Endoh)
12:54 PM Misc #21154: Document or change Module#autoload?
Thanks @mame!
I believe this may not entirely work.
That makes sense to be asked if you are thinking about explicit source code doing the autoload.
However, in situations in which the autoloads are set dynamically, as it is the ...
fxn (Xavier Noria)
11:53 AM Misc #21154 (Assigned): Document or change Module#autoload?
This was discussed at the dev meeting.
It is decided to add a sentence to documents of `Kernel#autoload` and `Module#autoload` that prohibits registering a file being loaded. I have created a PR.
https://github.com/ruby/ruby/pull/1...
mame (Yusuke Endoh)
02:25 PM Misc #20968: `Array#fetch_values` unexpected method name in stack trace
matz (Yukihiro Matsumoto) wrote in #note-13:
> It should not be displayed. I don't care much if it exists. It should be decided according to the demand and implementation easiness.
FWIW, I am pretty sure TruffleRuby will never do tha...
Eregon (Benoit Daloze)
12:07 PM Misc #20968: `Array#fetch_values` unexpected method name in stack trace
It should not be displayed. I don't care much if it exists. It should be decided according to the demand and implementation easiness.
Matz.
matz (Yukihiro Matsumoto)
11:09 AM Misc #20968: `Array#fetch_values` unexpected method name in stack trace
> He reiterated that <internal: should not be displayed.
Should it even exist then? Because a "simple" solution would be simply make `Primitive.attr! :c_trace` the default rather than a opt-in thing.
byroot (Jean Boussier)
11:06 AM Misc #20968: `Array#fetch_values` unexpected method name in stack trace
I reconfirmed this with @matz during the dev meeting. He reiterated that `<internal:` should not be displayed.
To address this issue, the following approach is proposed:
1. Merge the consecutive `<internal:` frames into a single fr...
mame (Yusuke Endoh)
02:24 PM Revision f2483c79 (git): [ruby/prism] Use Set.new over to_set
https://github.com/ruby/prism/commit/422d5c4c64 kddnewton (Kevin Newton)
02:12 PM Revision 31cf2684 (git): Output object_id in object metadata for MMTk
peterzhu2118 (Peter Zhu)
02:12 PM Revision bdb25959 (git): Move object_id to flags for ObjectSpace dumps
Moving object_id dumping from ObjectSpace to the GC flags allows ObjectSpace
to not assume the FL_SEEN_OBJ_ID flag and instead move it to the responsibility
of the GC.
peterzhu2118 (Peter Zhu)
01:52 PM Revision 3d4c7c38 (git): [ruby/prism] Use `reverse_each` in the parser translator
Avoids an array allocation which matters more and more
the larger the file is.
I have it at 14% of runtime.
https://github.com/ruby/prism/commit/f65b90f27d
Earlopain (Earlopain _)
01:52 PM Revision 67e6ccb2 (git): [ruby/prism] Optimize array inclusion checks in the parser translator
I see `Array.include?` as 2.4% runtime. Probably because of `LPAREN_CONVERSION_TOKEN_TYPES` but
the others will be faster as well.
Also remove some inline array checks. They are specifically optimized in Ruby since 3.4, but for now pris...
Earlopain (Earlopain _)
01:50 PM Bug #20340 (Closed): Ractor comments not applying to constant targets
Based on https://bugs.ruby-lang.org/issues/21016#note-4, I think this is the expected behavior. kddnewton (Kevin Newton)
01:50 PM Bug #21016 (Closed): What should massign with `shareable_constant_value: experimental_everything` freeze?
Based on https://bugs.ruby-lang.org/issues/21016#note-4, I think this is the expected behavior. kddnewton (Kevin Newton)
11:56 AM Bug #21016: What should massign with `shareable_constant_value: experimental_everything` freeze?
In my opinion, only constant assignment should make assignee shareable.
Matz.
matz (Yukihiro Matsumoto)
01:08 PM Revision ee1f39ef (git): Add a document to autoload
Users are responsible for avoiding circular autoload.
[Misc #21154]
mame (Yusuke Endoh)
12:11 PM Bug #21139: Prism and parse.y parses `it = it` differently
I said I prefer Prism behavior to `parse.y`. But It was due to my misunderstanding. `it = it` should initialize the local variable named `it` and the value should be `nil`, just like other `x = x` assignment in Ruby.
In the future, all ...
matz (Yukihiro Matsumoto)
12:06 PM Revision 4b844f7d (git): [ruby/prism] Ensure backwards compatibility with the custom parser builder
Temoprary backwards-compat code so that current users
don't break.
Eventually the Translation::Parser initializer should asser that the correct class is passed in.
https://github.com/ruby/prism/commit/66b0162b35
Earlopain (Earlopain _)
12:03 PM Bug #21026: `def __FILE__.a; end` should be a syntax error
It should raise error with or without parentheses.
Matz.
matz (Yukihiro Matsumoto)
11:46 AM Bug #21026: `def __FILE__.a; end` should be a syntax error
A patch to make it syntax error: https://github.com/ruby/ruby/pull/12925 nobu (Nobuyoshi Nakada)
11:38 AM Misc #21134: DevMeeting-2025-03-13
The next dev meeting will be held at RubyKaigi 2025, Matsuyama, face to face. Please write to #21100 for the agenda. mame (Yusuke Endoh)
11:35 AM Misc #21134 (Closed): DevMeeting-2025-03-13
mame (Yusuke Endoh)
11:25 AM Bug #21029: Prism behavior for `defined? (;x)` differs
Discussed at the dev meeting.
kddnewton (Kevin Newton) wrote in #note-6:
> As @qnighy points out, should this be "expression" for when there is a trailing `;`?
@matz said "yes"; `defined? (x;)` should also return `"expression"`.
mame (Yusuke Endoh)
11:23 AM Bug #21152 (Closed): Enumerator's #size returned by Range#reverse_each raises an exception for endless Range
Discussed at the dev meeting, and @matz agreed with @eileencodes ; the behavior of Ruby 3.4 is better. mame (Yusuke Endoh)
11:16 AM Feature #16993: Sets: from hash keys using Hash#key_set
This was discussed at the dev meeting. @matz wanted to hear more about the use cases for this method first.
Also, since Set is currently in a halfway state where it is not fully built-in, a built-in `Hash#key_set` might require a spec...
mame (Yusuke Endoh)
10:54 AM Feature #20971 (Closed): Deprecate `rb_path_check`
Applied in changeset commit:git|7c88cbb4a6c486348c44be24941f17ef8be6b329.
----------
[Feature #20971] Deprecate `rb_path_check`
https://bugs.ruby-lang.org/issues/20971
Earlopain (Earlopain _)
09:43 AM Revision 7c88cbb4 (git): [Feature #20971] Deprecate `rb_path_check`
https://bugs.ruby-lang.org/issues/20971 Earlopain (Earlopain _)
09:10 AM Feature #21028 (Feedback): Method for finding why an object isn't Ractor shareable
mame (Yusuke Endoh)
07:19 AM Bug #21151 (Feedback): IO and StringIO raise FrozenError even for read-only methods
First, I would like to know why you want to freeze `IO` and `StringIO`. I can't think of a use case.
If there is no valid reason, it would not help if all operations on a frozen `IO` were prohibited. If there could be a good reason, I w...
matz (Yukihiro Matsumoto)
07:01 AM Revision faa8ccb6 (git): Update bundled gems list as of 2025-03-12
git[bot]
05:39 AM Bug #20698: Please backport fix for CVE-2024-43398
REXML-3.3.9 has been merged at https://github.com/ruby/ruby/commit/3713db9a24c4f4b69c59a0b28c41f861b5a14c97 on `ruby_3_1`. hsbt (Hiroshi SHIBATA)
05:27 AM Revision 469a0a4a (git): merge revision(s) da4464b824857d7610f9865ceb452ce0ead49164: [Backport #19426]
[Bug #19426] Fix endless `Range#step` with `#succ` method hsbt (Hiroshi SHIBATA)
05:27 AM Revision 998c26cd (git): merge revision(s) 79eb75a8dd64848f23e9efc465f06326b5d4b680: [Backport #20025]
[Bug #20025] Check if upper/lower before fallback to case-folding hsbt (Hiroshi SHIBATA)
05:27 AM Revision 774e3f00 (git): merge revision(s) 08b3a45bc97c835b4677bf76dbce68fd51d81897: [Backport #21180]
Push a real iseq in rb_vm_push_frame_fname()
Previously, vm_make_env_each() (used during proc
creation and for the debug inspector C API) picked up the
non-GC-allocated iseq that rb_vm_push_frame_fname() creates,...
hsbt (Hiroshi SHIBATA)
05:27 AM Revision f89a334b (git): merge revision(s) bccec7fb468ad977be75e7e4c2644b4ea845ab0c, 5f8ebcada099351acbc22db264e7cd3773c2bdc4, e13575bb7938e9e5b6a79bfca1b3793123f479da, 4adcfc8cd7a17593a6590025da2b03eebf4fd63c: [Backport #19584]
Fix crash in rb_gc_register_address
[Bug #19584]
Some C extensions pass a pointer to a global variable to
rb_gc_register_address. However, if a GC is triggered inside of
rb_gc_register_address, then the ...
hsbt (Hiroshi SHIBATA)
05:27 AM Revision 2c495132 (git): it is not working with Ruby 3.2
hsbt (Hiroshi SHIBATA)
05:27 AM Revision 64d93539 (git): Merge strscan-3.0.7
hsbt (Hiroshi SHIBATA)
05:27 AM Revision 30379fa1 (git): Merge strscan-3.0.6
hsbt (Hiroshi SHIBATA)
05:27 AM Revision 6dd8bd0d (git): merge revision(s) f423f6e10c0c226dfed98e7cb7a5d489191dfa35: [Backport #21131]
Ensure IO.copy_stream buffer is an independent string
Otherwise, changes to the buffer by the destination write method
could result in data changing for supposedly independent strings.
Fixes [Bug #21131]
hsbt (Hiroshi SHIBATA)
05:27 AM Revision 1c9af6c1 (git): merge revision(s) d4a1a2780c39bc648496ac92fc6e6ce2eb38ab47: [Backport #21032]
rb_feature_p: skip `get_expanded_load_path` for absolute paths
Ref: https://github.com/fxn/zeitwerk/pull/308
```ruby
require 'benchmark'
$LOAD_PATH << 'relative-path'
autoload :FOO, '/tmp/foo.r...
hsbt (Hiroshi SHIBATA)
05:27 AM Revision 0ef3411b (git): merge revision(s) 647390308239fbf82d159ecd83ed8df090af518d: [Backport #18257]
[Bug #18257] Register the class path of FrozenCore to mark
ICLASS does not have the path usually, so it needs to be registered
separately.
hsbt (Hiroshi SHIBATA)
05:26 AM Bug #19584: Crash in rb_gc_register_address
ruby_3_2 commit:8c3ebe6a00b1176c37bc7894a4373774255f6290 merged revision(s) commit:bccec7fb468ad977be75e7e4c2644b4ea845ab0c, commit:5f8ebcada099351acbc22db264e7cd3773c2bdc4, commit:e13575bb7938e9e5b6a79bfca1b3793123f479da, commit:4adcfc8... hsbt (Hiroshi SHIBATA)
05:26 AM Bug #21180: SEGV while marking `imemo_env->iseq`
ruby_3_2 commit:e325f5b1636d7eb59a9cc2f35ba6d91d6da4f459 merged revision(s) commit:08b3a45bc97c835b4677bf76dbce68fd51d81897. hsbt (Hiroshi SHIBATA)
05:26 AM Bug #20025: Parsing identifiers/constants is case-folding dependent
ruby_3_2 commit:6c24731837f88d67517cfc590cb496daed7a0ef5 merged revision(s) commit:79eb75a8dd64848f23e9efc465f06326b5d4b680. hsbt (Hiroshi SHIBATA)
05:26 AM Bug #19426: Endless `Range#step` of object with `#succ` method does not work
ruby_3_2 commit:89eacd31b7565aa45b9c9af4b475cf908830e41c merged revision(s) commit:da4464b824857d7610f9865ceb452ce0ead49164. hsbt (Hiroshi SHIBATA)
04:43 AM Revision 482b5307 (git): [DOC] Correct output in calling_methods.rdoc
Yutaro Ohno
04:22 AM Bug #21131: IO.copy_stream: yielded string changes value when duped
ruby_3_2 commit:4e9100b9974df197e569298655d37b8a2fadcfa5 merged revision(s) commit:f423f6e10c0c226dfed98e7cb7a5d489191dfa35. hsbt (Hiroshi SHIBATA)
04:22 AM Bug #21032: `Module#autoload?` is slow when `$LOAD_PATH` contains a relative path
ruby_3_2 commit:fd15d0f4cbddc8cf69013959e2a60734d0995d56 merged revision(s) commit:d4a1a2780c39bc648496ac92fc6e6ce2eb38ab47. hsbt (Hiroshi SHIBATA)
04:21 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
ruby_3_2 commit:b1b983915e109ae78e4e3a5c912f9f9597983641 merged revision(s) commit:647390308239fbf82d159ecd83ed8df090af518d. hsbt (Hiroshi SHIBATA)
04:08 AM Revision f9aadc62 (git): Use ghcr.io/ruby/fedora:latest instead of docker.io for avoiding rate limit
hsbt (Hiroshi SHIBATA)
01:43 AM Revision 200bf313 (git): Update default gems list at 069ecfe869f48c2bc3162de4ef00ac [ci skip]
git[bot]
01:33 AM Revision 069ecfe8 (git): [ruby/json] Release 2.10.2
https://github.com/ruby/json/commit/350c1fd154 byroot (Jean Boussier)
01:33 AM Revision e6a2cf9f (git): [ruby/json] Fix potential out of bound read in `json_string_unescape`.
https://github.com/ruby/json/commit/cf242d89a0 byroot (Jean Boussier)
01:24 AM Revision 8cc85dc0 (git): [rubygems/rubygems] Remove array allocation from Candidate#<=>
In a large application I profiled allocations while running `bundle
update` and found that this method was ~60% of allocations while
resolving (and Candidate#<=> is almost half of the total runtime).
This commit removes the array alloca...
Hartley McGuire

03/12/2025

08:12 PM Bug #19387: ObjectSpace.each_objects only returns shareable objects after starting a Ractor
One idea to solve this would be to implement `ObjectSpace.each_object` like TruffleRuby does it (at least when there are multiple Ractors):
basically it's just the transitive `ObjectSpace.reachable_objects_from(roots)`.
I.e. it uses th...
Eregon (Benoit Daloze)
07:56 PM Revision af76b7f4 (git): [ruby/prism] Revert "Mark extension as Ractor-safe"
https://github.com/ruby/prism/commit/56eaf53732 kddnewton (Kevin Newton)
07:15 PM Bug #21180 (Closed): SEGV while marking `imemo_env->iseq`
Applied in changeset commit:git|08b3a45bc97c835b4677bf76dbce68fd51d81897.
----------
Push a real iseq in rb_vm_push_frame_fname()
Previously, vm_make_env_each() (used during proc
creation and for the debug inspector C API) picked up th...
alanwu (Alan Wu)
07:15 PM Revision 242e99eb (git): [ruby/prism] Mark extension as Ractor-safe
https://github.com/ruby/prism/commit/10e5431b38 kddnewton (Kevin Newton)
07:00 PM Revision 08b3a45b (git): Push a real iseq in rb_vm_push_frame_fname()
Previously, vm_make_env_each() (used during proc
creation and for the debug inspector C API) picked up the
non-GC-allocated iseq that rb_vm_push_frame_fname() creates,
which led to a SEGV when the GC tried to mark the non GC object.
Put...
alanwu (Alan Wu)
07:00 PM Revision 9b966188 (git): Have `ast` live longer in ISeq.compile_file to fix GC stress crash
Previously, live range of `ast_value` ended on the call right before
rb_ast_dispose(), which led to premature collection and use-after-free.
We observed this crashing on -O3, -DVM_CHECK_MODE, with GCC 11.4.0 on
Ubuntu.
Co-authored-by: ...
alanwu (Alan Wu)
05:51 PM Revision ae2fcdc0 (git): [Bug #19841] Refine error on marshaling recursive USERDEF
nobu (Nobuyoshi Nakada)
05:27 PM Revision a8d63ecd (git): Fix flaky test_AREF_fstring_key
The code between the two ObjectSpace.count_objects could trigger a GC,
which could free string objects causing this test to fail.
We can see this failure on CI http://ci.rvm.jp/results/trunk-random2@ruby-sp2-noble-docker/5651016
Te...
peterzhu2118 (Peter Zhu)
04:44 PM Bug #21183: Ractor error with Prism::VERSION
I believe this has been fixed since the VERSION constant is now frozen. Can you double check that if you are using the latest prism release that this is still a problem for you? kddnewton (Kevin Newton)
04:03 PM Revision 9ec8dc9c (git): [ruby/openssl] mark `initialize_copy` as :nodoc:
https://github.com/ruby/openssl/commit/17f87d2cf0 midnight (Sarun R)
12:45 PM Bug #19841 (Closed): Marshal.dump stack overflow with recursive Time
Applied in changeset commit:git|9459bedd84d479bb1d7d3d40bada1cecb4701c37.
----------
[Bug #19841] Refine error on marshaling recursive USERDEF
nobu (Nobuyoshi Nakada)
09:59 AM Bug #19841: Marshal.dump stack overflow with recursive Time
https://github.com/ruby/ruby/pull/12914 hsbt (Hiroshi SHIBATA)
09:42 AM Revision b8af9325 (git): [DOC] Discourage use of `USERDEF`
nobu (Nobuyoshi Nakada)
09:42 AM Revision 9459bedd (git): [Bug #19841] Refine error on marshaling recursive USERDEF
nobu (Nobuyoshi Nakada)
09:20 AM Revision 2782cc75 (git): Win32: Remove intermediate files for rubyspec-capiext
nobu (Nobuyoshi Nakada)
09:20 AM Revision 3239af9b (git): Win32: Make object files in the same place as the DLLs
nobu (Nobuyoshi Nakada)
09:16 AM Bug #21129: Backporting strscan fix in Ruby 3.2
I'm working this at https://github.com/ruby/ruby/pull/12913 hsbt (Hiroshi SHIBATA)
09:08 AM Bug #20951: Confusing handling of timezone object's `#utc_to_local` results
`doc/_timezones.rdoc` is introduced from Ruby 3.3 release. I removed Ruby 3.1 and 3.2 from backport targets. hsbt (Hiroshi SHIBATA)
09:02 AM Revision 1a222816 (git): Restore to use rm_rf for failing example
https://github.com/ruby/ruby/actions/runs/13804651931/job/38616664529?pr=12911 hsbt (Hiroshi SHIBATA)
09:02 AM Revision 1d07deb4 (git): [ruby/json] Raise a ParserError on all incomplete unicode escape sequence.
This was the behavior until `2.10.0` unadvertently changed it.
`"\u1"` would raise, but `"\u1zzz"` wouldn't.
https://github.com/ruby/json/commit/7d0637b9e6
byroot (Jean Boussier)
09:02 AM Revision de9ce8c0 (git): Use erb executable again
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net> hsbt (Hiroshi SHIBATA)
09:02 AM Revision 63dbb2f8 (git): [rubygems/rubygems] Update docs for with/without consistency
The with and without flags accepts both comma and space separated values.
https://github.com/rubygems/rubygems/commit/b6149f61e3
Jacob Atzen
09:02 AM Revision 510edbcc (git): [rubygems/rubygems] Fix `ENAMETOOLONG` error when creating compact index cache
If a custom rubygems source URI is long enough, Bundler may end up
raising an `ENAMETOOLONG` error and crash.
This commit fixes the problem by trimming the cache slug size to fit
usual OS requirements.
https://github.com/rubygems/rubyg...
deivid (David Rodríguez)
09:02 AM Revision 13020ac0 (git): [rubygems/rubygems] Path helper to build paths in compact index cache
https://github.com/rubygems/rubygems/commit/d28f9b8515 deivid (David Rodríguez)
09:02 AM Revision 51958bae (git): [rubygems/rubygems] Prefer `FileUtils.rm_r` to `FileUtils.rm_rf` for specs
Because it does not swallow errors if it fails to remove the given
folders, making issues easier to debug.
https://github.com/rubygems/rubygems/commit/0db12d7afc
deivid (David Rodríguez)
09:02 AM Revision f656d34f (git): [rubygems/rubygems] Refactor specs to not try to remove folders that don't exist
This has the following benefits:
* Avoid duplicated work in some specs that first build a repo, and then
overwrite it with a completely different set of gems.
* Reduce RSpec nesting and improve readability.
* The change also made surf...
deivid (David Rodríguez)
06:22 AM Bug #20996: Embed Ruby 3.4 Failure
I can't reproduce it with a standalone program contains your code as `main`.
nobu (Nobuyoshi Nakada)
05:44 AM Bug #21181: LoadError in P4Ruby on Windows (MSYS2) After Ruby Security Update
Seems like a DLL used by that `P4.so` lacked.
Check the DLLs by `ldd C:/build/p4ruby/lib/P4.so`.
nobu (Nobuyoshi Nakada)
05:41 AM Feature #21182: Add Hash#rename
`transform_keys('old' => 'new')` feels good enough.
At least, `('old' => 'new')` (or even `('old', 'new')`, `(from: 'old', to: 'new')`) looks clearer than `(:old, to: :new)` to me.
And another concern is if the method name `rename` e...
nobu (Nobuyoshi Nakada)
02:34 AM Revision c6808803 (git): Launchable: Disable request retries when a timeout exception occurs (#12877)
When a Launchable server is unstable, a ReadTimeoutException occurs in the Launchable CLI. In such case, the Launchable CLI retries requests, which slows down CI execution. In this PR, I configured the environment variable SKIP_TIMEOUT_R... ono-max (Naoto Ono)
02:06 AM Revision 9ef9069c (git): Update bundled gems list at 1ba93fdfd21f403889aa7930f7ef2a [ci skip]
git[bot]
02:05 AM Revision 1ba93fdf (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)
01:55 AM Revision 1cdec324 (git): Fix memory leak in rb_reg_search_set_match
https://github.com/ruby/ruby/pull/12801 changed regexp matches to reuse
the backref, which causes memory to leak if the original registers of the
match is not freed.
For example, the following script leaks memory:
10.times do
...
peterzhu2118 (Peter Zhu)
01:54 AM Revision 1b2cc9c2 (git): [DOC] Tweaks for Hash#slice
burdettelamar (Burdette Lamar)
01:54 AM Revision 86eff856 (git): [DOC] Tweaks for Hash#to_a
burdettelamar (Burdette Lamar)
01:52 AM Revision 5208d2f4 (git): [DOC] Tweaks for Hash#shift
burdettelamar (Burdette Lamar)

03/11/2025

11:31 PM Revision 19a1370b (git): Update bundled gems list at 97231e4d7ece859ab7c7d81033e74d [ci skip]
git[bot]
11:31 PM Revision 97231e4d (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)
10:42 PM Feature #21121: Ractor channels
Ruby internals uses this same trick to simplify getting `require` calls to work in non-main ractors. The code is here: https://github.com/ruby/ruby/blob/master/ractor.c#L4009. It simply starts a new thread on the main ractor, calls the r... luke-gru (Luke Gruber)
10:42 PM Bug #21183 (Closed): Ractor error with Prism::VERSION
```
/Users/mperham/.rubies/ruby-3.4.1/lib/ruby/3.4.0/error_highlight/base.rb:88:in 'ErrorHighlight.prism_find': can not access non-shareable objects in constant Prism::VERSION by non-main Ractor. (Ractor::IsolationError)
#<Thread:0x000...
getajobmike (Mike Perham)
10:27 PM Bug #21181 (Feedback): LoadError in P4Ruby on Windows (MSYS2) After Ruby Security Update
Make sure P4.so exists and try passing an absolute path of it to `require`. alanwu (Alan Wu)
01:44 PM Bug #21181: LoadError in P4Ruby on Windows (MSYS2) After Ruby Security Update
After updating to Ruby versions 3.0.7, 3.1.5, 3.2.4, and 3.3.1, P4Ruby fails to load with the following error:
internal:c:/Ruby/x64/ruby-3.0.7-devkit/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb:85:in `require':
126: The specifie...
hjain (Himanshu Jain)
01:38 PM Bug #21181 (Feedback): LoadError in P4Ruby on Windows (MSYS2) After Ruby Security Update
After updating to Ruby versions 3.0.7, 3.1.5, 3.2.4, and 3.3.1, P4Ruby fails to load with the following error:
```
<internal:c:/Ruby/x64/ruby-3.0.7-devkit/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require':
126: T...
hjain (Himanshu Jain)
09:47 PM Bug #21146: VM_ASSERT(expr) gives bad bug report results when another ractor fails an assertion during printing of report
Thanks for your comment. I can make it simpler, but I am a bit confused as to what I should do instead. If the first thread gets to the global variable first and enters `rb_vm_bugreport`, my thinking was that other threads that also try ... luke-gru (Luke Gruber)
07:56 AM Bug #21146: VM_ASSERT(expr) gives bad bug report results when another ractor fails an assertion during printing of report
Your patch uses `RB_VM_LOCK_ENTER_NO_BARRIER` but it should block normal use of `rb_bug()` (using `rb_bug()` is irregular case though).
So I think it should use simpler mechanism to synchronize `rb_bug()` calling. For example, introduci...
ko1 (Koichi Sasada)
07:19 PM Revision b52f7895 (git): [DOC] Tweaks for Hash#select! (#12904)
burdettelamar (Burdette Lamar)
07:18 PM Revision a5f29213 (git): [DOC] Tweaks for Hash#select (#12903)
burdettelamar (Burdette Lamar)
07:18 PM Revision 51e2ff1e (git): [DOC] Tweaks for Hash#reject!
burdettelamar (Burdette Lamar)
07:04 PM Feature #21182 (Open): Add Hash#rename
Abstract: Implement Hash#rename which takes as arguments a from key and a to key and renames the from key to the new name.
Background: One of the most common data transformations for a hash (in my experience) is renaming a single key....
calebm (Caleb Meyer)
05:18 PM Bug #21177: Sometimes Ruby can create and delete long paths on Windows, but cannot traverse them
Wow, thanks so much @nobu! deivid (David Rodríguez)
04:20 PM Bug #21177 (Closed): Sometimes Ruby can create and delete long paths on Windows, but cannot traverse them
Applied in changeset commit:git|3278e3b6f3b4252ab05988b000886e3b6f089404.
----------
[Bug #21177] Win32: Allow longer path name
nobu (Nobuyoshi Nakada)
04:16 PM Revision 0e416faf (git): Fix `Socket.tcp_with_fast_fallback` to be usable from a Ractor
[Bug #21179]
```
socket.rb:1046:in 'Socket::HostnameResolutionStore#get_addrinfo': can not access non-shareable objects in constant
Socket::HostnameResolutionStore::PRIORITY_ON_V6 by non-main ractor. (Ractor::IsolationError)
fro...
byroot (Jean Boussier)
03:46 PM Revision 3278e3b6 (git): [Bug #21177] Win32: Allow longer path name
nobu (Nobuyoshi Nakada)
03:44 PM Revision e51411ff (git): Fix flaky test_latest_gc_info_need_major_by
The test could flake because a major GC could be triggered due to allocation
for caches or other things, which would cause the test to fail.
peterzhu2118 (Peter Zhu)
03:43 PM Revision 497f409b (git): [DOC] Tweaks for Hash#reject (#12876)
burdettelamar (Burdette Lamar)
03:43 PM Revision e9902678 (git): [DOC] Tweaks for Hash#update
burdettelamar (Burdette Lamar)
03:16 PM Bug #21171: Segfault on large stack (RUBY_THREAD_VM_STACK_SIZE) on 3.4.2
I could repro on ruby_3_4 edge but not sure why.
With
```diff
diff --git a/include/ruby/assert.h b/include/ruby/assert.h
index acc5e5b..31324ed 100644
--- a/include/ruby/assert.h
+++ b/include/ruby/assert.h
@@ -59,7 +59,7 @@
...
ko1 (Koichi Sasada)
08:43 AM Bug #21171 (Assigned): Segfault on large stack (RUBY_THREAD_VM_STACK_SIZE) on 3.4.2
mame (Yusuke Endoh)
02:45 PM Bug #21142: Lazy enumerator `.each_with_index` ignores `.take(0)` before it
You might want a different function.
`Enumerable#each_with_index` does reset the Enumerator, while `Enumerator#with_index` does not.
```ruby
p 3.times.lazy.take(0).each_with_index.to_a #[[0, 0], [1, 1], [2, 2]]
p 3.times.lazy.take(0).w...
Hanmac (Hans Mackowiak)
02:21 PM Bug #21142: Lazy enumerator `.each_with_index` ignores `.take(0)` before it
The pull request you point to was released with 3.4, but the problem started with 3.2, so it's not due to the change in the pull request. alanwu (Alan Wu)
07:36 AM Bug #21142: Lazy enumerator `.each_with_index` ignores `.take(0)` before it
@alanwu What do you think? cc/ @knu mame (Yusuke Endoh)
09:53 AM Feature #21148: Class proposal: IndefiniteNumeric < Numeric
Student (Nathan Zook) wrote:
> Suppose someone deals five cards face down from a regulation poker deck, and we wish to reason about the number of aces. We know that that number is one of zero, one, two, three, or four. Therefore, if som...
mame (Yusuke Endoh)
09:08 AM Feature #19908: Update to Unicode 15.1
I have created a PR to update it.
https://github.com/ruby/ruby/pull/12798
ima1zumi (Mari Imaizumi)
03:16 AM Feature #19908: Update to Unicode 15.1
@duerst What do you think? mame (Yusuke Endoh)
07:51 AM Bug #21147 (Closed): [Breaking changes or Bug] DateTime Range#to_a behaves different between 3.3.7 and 3.4.1
I think it is already fixed by #21030 and backported to ruby_3_4 branch. Please wait for the next release of 3.4 series mame (Yusuke Endoh)
07:24 AM Bug #21097 (Assigned): `x = a rescue b in c` and `def f = a rescue b in c` parsed differently between parse.y and prism
mame (Yusuke Endoh)
07:22 AM Bug #21166: Fiber Scheduler is unable to be interrupted by `IO#close`.
> rb_thread_io_interruptible_operation why not rb_io prefix? is it public c-api?
It's not public API, and we can change the name. It is defined in `thread.c` and `thread.h` since that is where `waiting_fd` is defined/used. `waiting_fd...
ioquatix (Samuel Williams)
07:04 AM Bug #21166: Fiber Scheduler is unable to be interrupted by `IO#close`.
could you make clear
* `rb_thread_io_interruptible_operation` why not `rb_io` prefix? is it public c-api?
* who/when/how unregister the hooks?
* could you clear how fiber scheduler use it? no `io_close` event (callback)?
* which context...
ko1 (Koichi Sasada)
07:21 AM Bug #21096 (Third Party's Issue): `Process.fork` hangs up on QEMU when called multiple times.
Try the latest qemu. If it still reproduces, let me know. mame (Yusuke Endoh)
03:08 AM Bug #21180 (Closed): SEGV while marking `imemo_env->iseq`
This issue happens most realistically for people using a fiber scheduler (through e.g. the *async* gem), on Ruby 3.4.x and on Linux, but the following crashes for me for 3.2 and newer on macOS:
```
$ tail -n +1 test.rb ret1.rb
==> tes...
alanwu (Alan Wu)
12:00 AM Revision 47c3ae69 (git): Bump tolerance for weak reference test from 1 to 2
The test fails sometimes with:
TestGc#test_latest_gc_info_weak_references_count [test/ruby/test_gc.rb:421]:
Expected 2 to be <= 1.
peterzhu2118 (Peter Zhu)

03/10/2025

09:57 PM Bug #21179 (Closed): Introduction Happy Eyeballs Version 2 broke `Socket.tcp` from secondary Ractors
Applied in changeset commit:git|ba5fb74583303d9e80f3700d0b5433cbc7e7c88e.
----------
Fix `Socket.tcp_with_fast_fallback` to be usable from a Ractor
[Bug #21179]
```
socket.rb:1046:in 'Socket::HostnameResolutionStore#get_addrinfo': can...
byroot (Jean Boussier)
08:39 PM Bug #21179 (Closed): Introduction Happy Eyeballs Version 2 broke `Socket.tcp` from secondary Ractors
```ruby
require "socket"
Ractor.new do
Socket.tcp("example.com", 80)
end.take
```
```
socket.rb:1046:in 'Socket::HostnameResolutionStore#get_addrinfo': can not access non-shareable objects in constant
Socket::HostnameResolu...
byroot (Jean Boussier)
09:57 PM Revision ba5fb745 (git): Fix `Socket.tcp_with_fast_fallback` to be usable from a Ractor
[Bug #21179]
```
socket.rb:1046:in 'Socket::HostnameResolutionStore#get_addrinfo': can not access non-shareable objects in constant
Socket::HostnameResolutionStore::PRIORITY_ON_V6 by non-main ractor. (Ractor::IsolationError)
fro...
byroot (Jean Boussier)
08:42 PM Bug #21178 (Closed): Socket fails in Ractor
Sorry, I didn't see you opened an issue already. I'm marking yours as duplicate because it has less context. byroot (Jean Boussier)
07:47 PM Bug #21178 (Closed): Socket fails in Ractor
I think these structures need to be frozen.
```
/Users/mperham/.rubies/ruby-3.4.1/lib/ruby/3.4.0/socket.rb:1043:in 'Socket::HostnameResolutionStore#get_addrinfo': can not access non-shareable objects in constant Socket::HostnameResol...
getajobmike (Mike Perham)
07:57 PM Revision 762e76cc (git): RUBY_FREE_AT_EXIT does not work when error in -r
[Bug #21173]
When loading a file using the command line -r, it is processed before
RUBY_FREE_AT_EXIT is checked. So if the loaded file raises an error, it
will cause memory to not be freed with RUBY_FREE_AT_EXIT.
For example `ruby -rte...
peterzhu2118 (Peter Zhu)
07:44 PM Bug #21177 (Closed): Sometimes Ruby can create and delete long paths on Windows, but cannot traverse them
In the GitHub Actions environment provided by `ruby/setup-ruby` with `os: windows-2022`, one can create directories with long names with no issues. Similarly, one can create files inside these directories, and delete these files and dire... deivid (David Rodríguez)
07:04 PM Revision e15a9044 (git): [Bug #21163] Fix hexadecimal float conversion
nobu (Nobuyoshi Nakada)
04:58 PM Revision e418ba09 (git): Update default gems list at 6b4453e332d67b5fb8f6932244fff9 [ci skip]
git[bot]
04:57 PM Revision 6b4453e3 (git): [ruby/prism] Support `itblock` for `Prism::Translation::Parser`
## Summary
`itblock` node is added to support the `it` block parameter syntax introduced in Ruby 3.4.
```console
$ ruby -Ilib -rprism -rprism/translation/parser34 -e 'buffer = Parser::Source::Buffer.new("path"); buffer.source = "proc {...
koic (Koichi ITO)
11:06 AM Revision 97c133a8 (git): [ruby/optparse] bump up to 0.7.0.dev.1 [ci skip]
https://github.com/ruby/optparse/commit/f4d64b0b17 nobu (Nobuyoshi Nakada)
11:01 AM Revision 13fa6cc6 (git): [ruby/optparse] [DOC] Extract description from README
https://github.com/ruby/optparse/commit/83e8c23d68 nobu (Nobuyoshi Nakada)
10:21 AM Revision 3cd3f766 (git): [ruby/optparse] Fix LESS environment variable setup in OptionParser#help_exit
If the original value of LESS ends with an option starting with "--",
simply appending "Fe" would result in an invalid option string.
https://github.com/ruby/optparse/commit/30571f91d3
kyanagi (Kouhei Yanagita)
10:19 AM Revision f4c16c57 (git): [ruby/optparse] Make the result of `tty?` obtainable with flexible stdout
In mock testing for stdout, `StringIO.new` is sometimes used to redirect the output.
In such cases, the assignment is done with `$stdout = StringIO.new`, not the constant `STDOUT`.
e.g., https://github.com/rubocop/rubocop/blob/v1.71.1/li...
koic (Koichi ITO)
09:55 AM Revision 45e8dc1e (git): [ruby/optparse] [DOC] Mention about post-check
https://github.com/ruby/optparse/commit/e1957d7392 nobu (Nobuyoshi Nakada)
09:55 AM Revision 9e265b58 (git): [ruby/optparse] Add post-check of value
Fix https://github.com/ruby/optparse/pull/80
https://github.com/ruby/optparse/commit/050a87d029
nobu (Nobuyoshi Nakada)
09:34 AM Bug #21166: Fiber Scheduler is unable to be interrupted by `IO#close`.
I have updated the proposal based on the discussion. ioquatix (Samuel Williams)
08:03 AM Revision b51450f3 (git): [ruby/optparse] Update argument check with save navigation operator
https://github.com/ruby/optparse/commit/71e2b31824 nobu (Nobuyoshi Nakada)
08:03 AM Revision dad0f876 (git): [ruby/optparse] Remove extra blank lines [ci skip]
https://github.com/ruby/optparse/commit/d7dec6808f nobu (Nobuyoshi Nakada)
07:56 AM Revision 9de9cb53 (git): [ruby/optparse] [DOC] Update documents to use single quotes instead of backqoutes
https://github.com/ruby/optparse/commit/5e71a70cb5 nobu (Nobuyoshi Nakada)
06:52 AM Bug #21144: Win32: Use Windows time zone ID as the time zone name if TZ is not set
ruby_3_2 commit:f7ec9546ee07298f5d0aed6fc245e2405fe950bc merged revision(s) commit:3f07bc76ff6a11232d9f18e5eaa31835c195e8f0, commit:34098b669c0cbc024cd08e686891f1dfe0a10aaf. hsbt (Hiroshi SHIBATA)
06:48 AM Revision f7ec9546 (git): merge revision(s) 3f07bc76ff6a11232d9f18e5eaa31835c195e8f0, 34098b669c0cbc024cd08e686891f1dfe0a10aaf: [Backport #21144]
[Bug #21144] Win32: Use Windows time zone ID if TZ is not set
If the TZ environment variable is not set, the time zone names
retrieved from the system are localized for UI display and may vary
across editions and...
hsbt (Hiroshi SHIBATA)
06:48 AM Revision d635eb51 (git): Update the latest version of redmine-backporter.rb and merger.rb
hsbt (Hiroshi SHIBATA)
06:39 AM Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash
Merged `ruby_3_2` at 5e69c1a96264f827eaa611d317c3dab0497f084a hsbt (Hiroshi SHIBATA)
03:43 AM Revision 1a985d36 (git): [rubygems/rubygems] Adapt specs to extraction of irb from ruby-core
This gets our daily Bundler CI back to green.
https://github.com/rubygems/rubygems/commit/1bb70f75d2
deivid (David Rodríguez)
03:43 AM Revision 0ca5240d (git): [rubygems/rubygems] `bundle console` deprecation was canceled
https://github.com/rubygems/rubygems/commit/1c237a4c3f deivid (David Rodríguez)
03:43 AM Revision 9d5a3c03 (git): [rubygems/rubygems] Reduce duplicate of some spec gemfiles
https://github.com/rubygems/rubygems/commit/bd42c840c6 deivid (David Rodríguez)
03:43 AM Revision e21e5bc8 (git): [rubygems/rubygems] Fix `gem rdoc` not working with newer versions of rdoc
https://github.com/rubygems/rubygems/commit/369f9b9311 deivid (David Rodríguez)
03:43 AM Revision 4323674f (git): [rubygems/rubygems] Don't treat a git-sourced gem install as complete if only the '.git' directory is present. This recovers cases where a git-sourced install can be left in a partially installed state.
https://github.com/rubygems/rubygems/commit/d132b7008d Tara Bass
03:43 AM Revision 71e34088 (git): [rubygems/rubygems] Switch inject to use shorthand hash syntax
https://github.com/rubygems/rubygems/commit/ba5a62fd04 cllns (sean collins)
03:43 AM Revision 8acf0d7b (git): [rubygems/rubygems] Use shorthand hash syntax for bundle add
https://github.com/rubygems/rubygems/commit/9691097036 cllns (sean collins)
03:43 AM Revision afbc6649 (git): Revert "Omit irb related examples temporary"
This reverts commit 750e6195040ec3f9d0b172ac1a49a49d9b7d8ba0. hsbt (Hiroshi SHIBATA)
03:43 AM Revision ce4abf2a (git): Revert "Move irb detection to top-level before(:each) block"
This reverts commit 261f8023842b6f90007df68dfc3d88a01a9337a2. hsbt (Hiroshi SHIBATA)

03/09/2025

02:32 PM Revision cdf36d6b (git): [ruby/optparse] Allow non-string enum list #79
Command line arguments are strings, convert enum list elements to
strings to match.
https://github.com/ruby/optparse/commit/c5ec052efc
nobu (Nobuyoshi Nakada)
02:32 PM Revision 213c2782 (git): [ruby/optparse] Add test for enum arguments
https://github.com/ruby/optparse/commit/0a0e977b7c nobu (Nobuyoshi Nakada)
02:09 PM Revision 0c73328a (git): [ruby/optparse] Use `\A` instead of `^` as the beginning of string
https://github.com/ruby/optparse/commit/a3f1029815 nobu (Nobuyoshi Nakada)
02:03 PM Revision 49199445 (git): [ruby/optparse] [DOC] Manage rdoc options only in .rdoc_options file
Make `rdoc .` and `rake rdoc` consistent.
https://github.com/ruby/optparse/commit/61b4ea0704
nobu (Nobuyoshi Nakada)
05:31 AM Bug #21176 (Closed): Regression in case-insensitive matching for single-byte encodings
In Ruby 3.4.2, case-insensitive regex matching (`/i`) worked as expected for single-byte encodings like ISO-8859-x.
However, in Ruby 3.5.0dev, characters such as `\u00F3 (ó)` and `\u00D3 (Ó)` are no longer considered equivalent under ca...
ima1zumi (Mari Imaizumi)
03:16 AM Revision f6c146ab (git): Remove a stale test file [ci skip]
nobu (Nobuyoshi Nakada)
02:26 AM Revision 5965978e (git): Merge the `new_yield` method into the `rb_node_yield_new` method
ydah (Yudai Takada)

03/08/2025

10:08 PM Bug #21139 (Open): Prism and parse.y parses `it = it` differently
matz (Yukihiro Matsumoto) wrote in #note-1:
> By the way, how can I clear assignee of the issue on Redmine?
The null option in the menu is the very first one and is rendered with a tiny height to make it hard to mouse over. It's easi...
alanwu (Alan Wu)
05:56 PM Revision caa7eaec (git): Refactor parser rules to remove inline_operation
ydah (Yudai Takada)
01:20 PM Revision 24945def (git): Remove redundant semantic action in bvar rule
ydah (Yudai Takada)
09:56 AM Revision a14d9b8d (git): string.c: Improve `fstring_hash` to reduce collisions
`rb_str_hash` doesn't include the encoding for ASCII only strings
because ASCII only strings are equal regardless of their encoding.
But in the case if the `fstring_table`, two identical ASCII strings
with different encodings aren't equ...
byroot (Jean Boussier)
09:26 AM Revision eae0fe37 (git): Implement CLASS NODE locations
The following Location information has been added This is the information required for parse.y to be a universal parser:
```
❯ ruby --parser=prism --dump=parsetree -e "class A < B; end"
@ ProgramNode (location: (1,0)-(1,16))
+-- locals:...
ydah (Yudai Takada)
09:21 AM Bug #21112: Typo in error message when an incorrect key is used with WeakKeyMap
ruby_3_3 commit:e860cb2267cd17aef9a5e8e977d03410c213d6a2 merged revision(s) commit:91a10c07579f282a94e4b5830feaeca87f9a7dd3. nagachika (Tomoyuki Chikanaga)
09:21 AM Revision e860cb22 (git): merge revision(s) 91a10c07579f282a94e4b5830feaeca87f9a7dd3: [Backport #21112]
Fix a typo in WeakKeyMap argument error
[Bug #21112]
nagachika (Tomoyuki Chikanaga)
09:20 AM Bug #21095: Prefer `uname -n` over `hostname` in tests.
ruby_3_3 commit:fff5baf200572762a60c624bc7bea866992c2f30 merged revision(s) commit:46b544c54955348ef1ea9692b837b061f59f91cd, commit:d3abee739f4feb91bb9aaae33877d70c8c576db0. nagachika (Tomoyuki Chikanaga)
09:19 AM Revision fff5baf2 (git): merge revision(s) 46b544c54955348ef1ea9692b837b061f59f91cd, d3abee739f4feb91bb9aaae33877d70c8c576db0: [Backport #21095]
Prefer `uname -n` over `hostname`. (#12647)
Add fallback for `hostname` if `uname` isn't available. (#12655)
nagachika (Tomoyuki Chikanaga)
08:40 AM Bug #21032: `Module#autoload?` is slow when `$LOAD_PATH` contains a relative path
ruby_3_3 commit:54dd27d89d2e6814114f1aff18836a987d5a4ab1 merged revision(s) commit:d4a1a2780c39bc648496ac92fc6e6ce2eb38ab47. nagachika (Tomoyuki Chikanaga)
08:26 AM Revision 54dd27d8 (git): merge revision(s) d4a1a2780c39bc648496ac92fc6e6ce2eb38ab47: [Backport #21032]
rb_feature_p: skip `get_expanded_load_path` for absolute paths
Ref: https://github.com/fxn/zeitwerk/pull/308
```ruby
require 'benchmark'
$LOAD_PATH << 'relative-path'
autoload :FOO, '/tmp/foo.r...
nagachika (Tomoyuki Chikanaga)
08:24 AM Bug #21046: Backport: TLS fix for ARM64
ruby_3_3 commit:8274b8193e0a047d1edfff603dd2436276f906c4 merged revision(s) commit:f7059af50a31a4d27a04ace0beadb60616f3f971. nagachika (Tomoyuki Chikanaga)
08:23 AM Revision 8274b819 (git): merge revision(s) f7059af50a31a4d27a04ace0beadb60616f3f971: [Backport #21046]
Use no-inline version `rb_current_ec` on Arm64
The TLS across .so issue seems related to Arm64, but not Darwin.
nagachika (Tomoyuki Chikanaga)
08:03 AM Bug #20951: Confusing handling of timezone object's `#utc_to_local` results
ruby_3_3 commit:56ba9041d9e338359b32ba0bfb3d816d57dc9d39 merged revision(s) commit:ae6bd3b49ba252985b92416c24102ede3c0aac9b, commit:966458199d870b88b42898d4a063b487c1ef6b00, commit:966458199d870b88b42898d4a063b487c1ef6b00. nagachika (Tomoyuki Chikanaga)
07:53 AM Bug #20951 (Closed): Confusing handling of timezone object's `#utc_to_local` results
Moved to "Closed" status to trigger backport. nagachika (Tomoyuki Chikanaga)
08:03 AM Revision 56ba9041 (git): merge revision(s) ae6bd3b49ba252985b92416c24102ede3c0aac9b, 966458199d870b88b42898d4a063b487c1ef6b00, 966458199d870b88b42898d4a063b487c1ef6b00: [Backport #20951]
[DOC] Tweak "Timezone Objects"
- Make method descriptions plain pragraphs in each method.
- Make "Argument" and "Returns" note-lists.
[Bug #20951] [DOC] About UTC offset calculation after `utc_to_local`
...
nagachika (Tomoyuki Chikanaga)
07:44 AM Bug #21170: Corrupted Hash (bad VALUE and missing entry) when -1 returned from .hash
Merged into ruby_3_3 at ecb9f7ef372c70c3e4fa81a5002533814a94aa86 nagachika (Tomoyuki Chikanaga)
07:43 AM Revision ef523984 (git): Replace tombstone when converting AR to ST hash
[Bug #21170]
st_table reserves -1 as a special hash value to indicate that an entry
has been deleted. So that that's a valid value to be returned from the
hash function, do_hash replaces -1 with 0 so that it is not mistaken for
the sent...
jhawthorn (John Hawthorn)
07:27 AM Revision ecb9f7ef (git): Merge cgi-0.4.2
hsbt (Hiroshi SHIBATA)
07:27 AM Revision e5882716 (git): Merge uri-0.13.2
hsbt (Hiroshi SHIBATA)
01:23 AM Revision 98790faa (git): YJIT: Add Counter::invalidate_everything
When YJIT is forced to discard all the code, that's bad for
performance, so there should be an easy way to know about it.
alanwu (Alan Wu)

03/07/2025

11:52 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
A keyword argument, then. Maybe `exception: true` ala `Kernel#system`? deivid (David Rodríguez)
11:01 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
The `!` for a version that raises is a Rails convention, and AFAIK always rejected for Ruby itself.
So a keyword argument is more likely to be accepted.
byroot (Jean Boussier)
10:19 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
It could also be an option like `FileUtils.rm(ignore_missing: true)`, that way it can apply to both `rm` and `rm_r`. Dan0042 (Daniel DeLorme)
08:59 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
Today I again spent a lot of time debugging an issue, and it ended up being an exception swallowed by `FileUtils.rm_rf`.
Would you be ok with adding `FileUtils.rm_rf!` that mimics standard `rm -rf` shell behaviour, similar to what @Da...
deivid (David Rodríguez)
09:18 PM Revision 3c92fe13 (git): [DOC] Fix minor miscalculation of stack size
kyontan (Kyosuke Tanaka)
07:41 PM Bug #21168: Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does
I took a look at this and I'm not sure any of these cases should fail - which would mean the consistently rejected cases are incorrect.
If the argument is wrapped in parenthesis it passes the syntax check (in all cases provided in thi...
eileencodes (Eileen Uchitelle)
02:38 PM Revision 17f6a689 (git): [DOC] Tweaks for Hash#rehash
burdettelamar (Burdette Lamar)
02:36 PM Revision 8774530c (git): [DOC] Tweaks for Hash#rassoc
burdettelamar (Burdette Lamar)
02:34 PM Revision 42b75a9c (git): [DOC] Tweaks for Hash#merge (#12825)
burdettelamar (Burdette Lamar)
11:44 AM Bug #21175 (Closed): Range#max called on a beginles Integer Range with excluded end raises TypeError
Applied in changeset commit:git|cbe3156f82ee8b68e734be58badb9b6a3adc8aa6.
----------
[Bug #21174] [Bug #21175] Fix `Range#max` on beginless integer range
nobu (Nobuyoshi Nakada)
10:29 AM Bug #21175: Range#max called on a beginles Integer Range with excluded end raises TypeError
https://github.com/ruby/ruby/pull/12879 nobu (Nobuyoshi Nakada)
11:44 AM Bug #21174 (Closed): Range#max called with an argument on a beginless Integer Range raises RangeError
Applied in changeset commit:git|cbe3156f82ee8b68e734be58badb9b6a3adc8aa6.
----------
[Bug #21174] [Bug #21175] Fix `Range#max` on beginless integer range
nobu (Nobuyoshi Nakada)
10:28 AM Bug #21174: Range#max called with an argument on a beginless Integer Range raises RangeError
andrykonchin (Andrew Konchin) wrote:
> I would expect `[9, 10]` to be returned.
`Range#max` returns the elements in greater order.
I think it should be `[10, 9]`, and `(..10).last(2)` should return `[9, 10]` without an exception to...
nobu (Nobuyoshi Nakada)
10:19 AM Bug #21162 (Closed): Regexp casefold mismatch for latin1 supplemental chars
I nobu (Nobuyoshi Nakada)
09:51 AM Bug #21167 (Third Party's Issue): Visual Studio 2022 17.13.x couldn't build ruby.exe
According to the Microsoft engineering team, already this bug has been fixed internally.
https://developercommunity.visualstudio.com/t/Use-of-the-result-of-bsr-before-that-i/10862351#T-N10863092-N10864280
nobu (Nobuyoshi Nakada)
08:52 AM Revision f118e0ce (git): [Bug #21174] [Bug #21175] Update rubyspec
nobu (Nobuyoshi Nakada)
08:23 AM Revision cbe3156f (git): [Bug #21174] [Bug #21175] Fix `Range#max` on beginless integer range
nobu (Nobuyoshi Nakada)
04:30 AM Bug #21163 (Closed): Inconsistencies in Kernel.Float compared to other number parsing methods
Applied in changeset commit:git|8841f885bde7bbe571d2043830799059870dc70c.
----------
[Bug #21163] Fix hexadecimal float conversion
nobu (Nobuyoshi Nakada)
03:14 AM Revision 8841f885 (git): [Bug #21163] Fix hexadecimal float conversion
nobu (Nobuyoshi Nakada)
 

Also available in: Atom