Project

General

Profile

Activity

From 03/27/2025 to 04/02/2025

04/02/2025

11:59 PM Misc #21209 (Closed): Endless classes and modules
There's something special about proposals on April 1st, isn't there? duerst (Martin Dürst)
05:16 PM Misc #21209: Endless classes and modules
A similar issue was raised in #21155. We discussed that issue at the last dev meeting, and several endless class definition syntax was proposed.
```ruby
module = Foo
in module Foo
for module Foo
```
However, @matz didn't ...
mame (Yusuke Endoh)
09:20 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
I reread my message and I didn't mean to come across like I disagreed with your changes, because I don't :) luke-gru (Luke Gruber)
08:46 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
> doesn't really "move" the object anymore, it just deep copies it since your change. It's not a less expensive operation anymor
As mentioned previously, this isn't meant as an end state, but as a quick fix to allow further experiment...
byroot (Jean Boussier)
08:43 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
That would be fine with me, because actually `move: true` doesn't really "move" the object anymore, it just deep copies it since your change. It's not a less expensive operation anymore, so we may as well keep the original object around ... luke-gru (Luke Gruber)
05:44 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
Yeah, it's really tricky. There has been some talks of just removing the `move: true` capability.
Given: https://bugs.ruby-lang.org/issues/21208, I'm not sure it can ever be made correct, hence it might not be worth trying to improve it.
byroot (Jean Boussier)
05:41 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
Yeah I was afraid that would be the case, but we could differentiate between user-defined clone callbacks and builtin callbacks. Either way we can probably worry about this later, I was just bringing it up in case you hadn't thought abou... luke-gru (Luke Gruber)
10:37 AM Bug #20255: Embedded arrays aren't moved correctly across ractors
> The best solution is to not allow these callbacks,
So it's not actually possible, because many types rely on it. e.g:
```ruby
class Array
def initialize_clone(o)
# noop
end
end
p [1, 2, 3, 4, 5].clone # => []
```
byroot (Jean Boussier)
08:53 PM Revision d543fda4 (git): [ruby/prism] Be explicit in tests which files `parser` can't parse
It also updates to latest `parser`, which allows numbered
parameters in pattern matching pin,
passing `patterns.txt` and `case.txt`
https://github.com/ruby/prism/commit/bdcc8b3dc5
Earlopain (Earlopain _)
08:51 PM Revision 334c261c (git): [ruby/prism] Fix parser translator when splatting in pattern matching pin
Because it ends up treating it as a local variable, and `a.x`
is not a valid local variable name.
I'm not big on pattern matching, but conceptually it makes sense to me
to treat anything inside ^() to not be
pattern matching syntax?
ht...
Earlopain (Earlopain _)
07:53 PM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
> It looks like there is an issue with strings
Looking at `GC.count` and `GC.stat_heap`
`3.3.4`
```
gc_count: 1179
0 => { :total_allocated_pages=>13, :total_freed_pages=>0}
1 => { :total_allocated_pages=>1226, :total_fre...
byroot (Jean Boussier)
07:02 PM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
It looks like there is an issue with strings. I simplified the script to:
```ruby
require 'objspace'
BYTES_TO_MB = 1024 * 1024
$stdout.sync = true
srand(1)
# Declare supporting code
def print_info(context)
puts context
...
peterzhu2118 (Peter Zhu)
06:09 PM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
`ObjectSpace.memsize_of_all` being mostly stable suggest the difference is likely in the GC releasing the memory less eagerly, or having trouble releasing it because it's more fragmented.
> any lead to reduce this peak?
There are ...
byroot (Jean Boussier)
04:18 PM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
Add random strings to the object created during the loop mood_vuadensl (LOIC VUADENS)
04:06 PM Bug #21214 (Closed): VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
Hello,
After updating Ruby from 3.3.6 to 3.4.2, our batch-style (not based on rails) application exceed its memory limit.
Below is an example script that runs on both versions and demonstrates that 'ObjectSpace.memsize_of_all' does n...
mood_vuadensl (LOIC VUADENS)
04:50 PM Revision fe9ebb24 (git): vm_core.h: unify YJIT ifdefs
byroot (Jean Boussier)
04:16 PM Revision e3fc29a9 (git): Improve backtrace of errors raised by `Socket.tcp_with_fast_fallback`
[Bug #21211]
Socket errors raised from background threads are hard to track down because
their backtrace starts from the spawned thread.
To solve this we can raise a new error with the old one as `cause`.
byroot (Jean Boussier)
04:10 PM Revision 3a7b0324 (git): [DOC] Tweaks for Hash doc
burdettelamar (Burdette Lamar)
04:03 PM Revision 2a55cc3f (git): [DOC] Tweaks to String::try_convert
burdettelamar (Burdette Lamar)
02:47 PM Revision ce1dfe81 (git): [DOC] Doc for Thread::ConditionVariable
Documented the necessity of calling `wait` in a loop. We modified the
example to demonstrate the idiomatic use, and added a third thread `a2`
to demonstrate another reason that necessitates the loop.
Mentioned spurious wake-up in the doc.
wks (Kunshan Wang)
02:04 PM Bug #21206: Segmentation fault on ISeq#to_binary
I tracked it down to:
```c
if (!p->it_id) {
p->it_id = internal_id(p);
vtable_add(p->lvtbl->args, p->it_id);
}
```
Internal IDs can't be serialized.
It seems there was...
byroot (Jean Boussier)
01:26 PM Bug #21206: Segmentation fault on ISeq#to_binary
Running in on ruby master with debugs run into the following assertion failure:
```
../include/ruby/internal/core/rstring.h:391: Assertion Failed: rbimpl_rstring_getmem:RB_TYPE_P(str, RUBY_T_STRING): actual type: 19
```
byroot (Jean Boussier)
12:19 PM Bug #20984: ENV.inspect is not encoding aware
Backported d78ff6a767ca813ac5fa178dd7611f20a993c191 into ruby_3_3 at 3d8a66568e8106b367665d716e0d3c8c8208aa07. nagachika (Tomoyuki Chikanaga)
12:16 PM Revision 3d8a6656 (git): merge revision(s) d78ff6a767ca813ac5fa178dd7611f20a993c191: [Backport #20984]
[Bug #20984] Fix test with locale encoding nagachika (Tomoyuki Chikanaga)
11:24 AM Bug #21211 (Closed): Incomplete Backtrace for Socket Errors in Ruby 3.4+
Applied in changeset commit:git|580aa60051773e3512121088eb8ebaee8ce605ea.
----------
Improve backtrace of errors raised by `Socket.tcp_with_fast_fallback`
[Bug #21211]
Socket errors raised from background threads are hard to track dow...
byroot (Jean Boussier)
10:26 AM Bug #21211: Incomplete Backtrace for Socket Errors in Ruby 3.4+
https://github.com/ruby/ruby/pull/13041 byroot (Jean Boussier)
11:24 AM Revision 580aa600 (git): Improve backtrace of errors raised by `Socket.tcp_with_fast_fallback`
[Bug #21211]
Socket errors raised from background threads are hard to track down because
their backtrace starts from the spawned thread.
To solve this we can raise a new error with the old one as `cause`.
byroot (Jean Boussier)
09:28 AM Bug #21203: TestGc#test_gc_parameter_init_slots is flaky results
@peterzhu2118 I could reproduce this only one time with my Apple Silicon macOS.
```
1) Failure:
TestGc#test_latest_gc_info_weak_references_count [/Users/hsbt/Documents/github.com/ruby/ruby/test/ruby/test_gc.rb:422]:
Expected 3 to...
hsbt (Hiroshi SHIBATA)
09:25 AM Bug #21203: TestGc#test_gc_parameter_init_slots is flaky results
@peterzhu2118 Thanks for working on this issue. Because it's a flaky issue, it is difficult to tell how to reproduce it.
According to Launchable, we can see that
* this issue started occuring around 2025-03-17, and
* it occured on...
mame (Yusuke Endoh)
08:58 AM Bug #21204: `TestEtc#test_ractor_parallel` is still flaky result with ModGC/MMTk
`TestSocket#test_timestamp` is failed sometimes on ModGC workflow.
```
1) Failure:
TestSocket#test_timestamp [/home/runner/work/ruby/ruby/src/test/socket/test_socket.rb:493]:
<[[#<Socket:fd 7>], [], []]> expected but was
...
hsbt (Hiroshi SHIBATA)
07:24 AM Revision 43ee4a50 (git): Fixup comment for Windows platform, not Solaris
hsbt (Hiroshi SHIBATA)
07:24 AM Revision e71192da (git): Removed Solaris conditions from optional and shared directories
hsbt (Hiroshi SHIBATA)
07:24 AM Revision 3d4ea454 (git): Removed Solaris conditions from library directory
hsbt (Hiroshi SHIBATA)
07:24 AM Revision 8cb61b00 (git): Removed Solaris conditions from core directory
hsbt (Hiroshi SHIBATA)
07:24 AM Revision 6bd5a51a (git): Removed Solaris conditions from test files
We no longer execute those files with Solaris platforms. hsbt (Hiroshi SHIBATA)
07:01 AM Revision ca97302d (git): Update bundled gems list as of 2025-04-01
git[bot]
06:43 AM Feature #14565: Simpler, one-liner, failsafe require in ruby? [Suggested names: require_failsafe, require_safe, require_try, require_add)
I like this feature request, a non-failing require would be great for gems that optionally depend on another gem.
For example:
```ruby
begin
require 'rubocop-rspec'
rescue LoadError
end

if defined?(RuboCop::RSpec)
# .....
jeromedalbert (Jerome Dalbert)
05:55 AM Bug #21213 (Third Party's Issue): [BUG] heap_idx_for_size: allocation size too large (size=145u, heap_idx=146u)
It is a bug of Visual C 17.3.5 and has been fixed by preview versions. nobu (Nobuyoshi Nakada)
05:31 AM Bug #21213 (Third Party's Issue): [BUG] heap_idx_for_size: allocation size too large (size=145u, heap_idx=146u)
Failed to build ruby 3.4.2 after upgrade Visual C++ build Tools from 17.2 to 17.3.5. The logging file is as attachment. Use this build script https://github.com/jiangjianshan/msvc-pkg/blob/main/packages/ruby/build.bat and it work before ... jjs008 (小龙 江)
04:53 AM Bug #21212 (Assigned): IO::Buffer can be freed while its slice is locked
```ruby
buffer = IO::Buffer.new(100)
slice = buffer.slice
buffer.locked do
buffer.free rescue p $! #=> IO::Buffer::LockedError (expected)
end
slice.locked do
p slice.locked? #=> true (expected)
p buffer.locked? #=> f...
hanazuki (Kasumi Hanazuki)
02:40 AM Bug #21210: IO::Buffer gets invalidated on GC compaction
alanwu (Alan Wu) wrote in #note-5:
> Another option that maintains validity across movement (untested):
> ...
So this will copy the embedded String content to a malloc'ed memory, right?
The default GC embeds up to 640 bytes minus RS...
hanazuki (Kasumi Hanazuki)
01:39 AM Bug #21210: IO::Buffer gets invalidated on GC compaction
eightbitraptor (Matt V-H) wrote in #note-4:
> Instead of pinning the source string, did you consider allowing the string to move by calculating the `base` offset, then moving the `source` string and updating the `base` pointer using `rb_...
hanazuki (Kasumi Hanazuki)
01:52 AM Revision 938db053 (git): Removed the warning targets for Ruby 3.1 because 3.1 is already EOL
hsbt (Hiroshi SHIBATA)
01:37 AM Revision d75d4275 (git): [rubygems/rubygems] Bump up minimum required version for cmake 4
https://github.com/rubygems/rubygems/commit/3e77caeddf hsbt (Hiroshi SHIBATA)
01:35 AM Revision ca023835 (git): [rubygems/rubygems] Bump up minimum required version for cmake 4
https://github.com/rubygems/rubygems/commit/3e77caeddf hsbt (Hiroshi SHIBATA)
01:33 AM Revision 66d133ab (git): [rubygems/rubygems] Bump up minimum required version for cmake 4
https://github.com/rubygems/rubygems/commit/3e77caeddf hsbt (Hiroshi SHIBATA)

04/01/2025

11:41 PM Bug #21210: IO::Buffer gets invalidated on GC compaction
Another option that maintains validity across movement (untested):
```diff
diff --git a/io_buffer.c b/io_buffer.c
index 0534999319..13102b561d 100644
--- a/io_buffer.c
+++ b/io_buffer.c
@@ -570,7 +570,7 @@ rb_io_buffer_type_for(V...
alanwu (Alan Wu)
09:56 PM Bug #21210: IO::Buffer gets invalidated on GC compaction
I checked with the following `test.rb` that this patch does fixes the Buffer validity after compaction.
```
str = +"hello"
str_buf = IO::Buffer.for(str)
buf = IO::Buffer.new(128)
slice = buf.slice(8, 32)
GC.verify_compactio...
eightbitraptor (Matt V-H)
08:10 PM Bug #21210: IO::Buffer gets invalidated on GC compaction
Patch: https://github.com/ruby/ruby/pull/13033 hanazuki (Kasumi Hanazuki)
05:28 PM Bug #21210: IO::Buffer gets invalidated on GC compaction
The `source` field in a `struct rb_io_buffer` can have a String or an IO::Buffer if not nil.
When `source` is a String, we need to pin the object (`rb_str_locktmp` does not keep the embedded String content from being moved by GC).
When...
hanazuki (Kasumi Hanazuki)
04:39 PM Bug #21210 (Closed): IO::Buffer gets invalidated on GC compaction
commit:6012145299cfa4ab561360c78710c7f2941a7e9d implemented compaction for `IO::Buffer`.
It looks like this doesn't work well with an `IO::Buffer` that shares memory region with a String object.
I think the problem is that an `IO::Buff...
hanazuki (Kasumi Hanazuki)
08:45 PM Revision e4020133 (git): Remove incorrect assertion
ractor_cache will always be NULL in this context eightbitraptor (Matt V-H)
08:25 PM Revision 6fbc32b5 (git): GCC defines __linux__, not __LINUX__
Fixes: 2c6512fe67a275ce4d251f3c5d304bc523597f42 alanwu (Alan Wu)
08:16 PM Bug #21208: `Ractor#send(move: true)` allow moving objects that are on the stack, and used by C code.
Hmm... this is tricky, good find! This probably won't occur often, I'm having a hard time coming up with a situation where it would happen with some benign looking code.
It's fun thinking about solutions to these kinds of things, so as ...
luke-gru (Luke Gruber)
07:51 AM Bug #21208: `Ractor#send(move: true)` allow moving objects that are on the stack, and used by C code.
> The following script causes a crash
Actually, that was only because I was on an older branch, it no longer crash on `master`, and even behave somewhat correctly by sheer luck.
The general issue remain, `send(obj, move: true)` ess...
byroot (Jean Boussier)
06:00 PM Bug #21211 (Closed): Incomplete Backtrace for Socket Errors in Ruby 3.4+
When invoking `Socket.tcp` with an invalid hostname (e.g., "foo.bar") in Ruby 3.4, the error raised does not provide a complete backtrace indicating the original application code that made the call. This behavior differs from Ruby 3.3 wh... ioquatix (Samuel Williams)
04:11 PM Revision 30e5e7c0 (git): Revert "Fix jump buffer leak in setjmp handler in WASI builds"
This reverts the following commits as it's causing OOM in some cases in
ruby/ruby.wasm test suite.
* 372515f33c908b36b3f5fbd2edcb34c69b418500
* 3a730be8b464454878a42132f6fecb98ab4c1b5b
katei (Yuta Saito)
03:36 PM Misc #21209 (Closed): Endless classes and modules
Endless methods have proven popular enough that we should bring the same endlessness to module/class definitions.
For a long time we've had this ugly pattern of class definitions with an extreme level of indentation.
I propose a si...
Dan0042 (Daniel DeLorme)
01:44 PM Bug #21203: TestGc#test_gc_parameter_init_slots is flaky results
I can't reproduce this on my ARM macOS or x86 Linux machine with `-DVM_CHECK_MODE` enabled. Do you know how this can be reproduced? peterzhu2118 (Peter Zhu)
11:25 AM Bug #21203 (Assigned): TestGc#test_gc_parameter_init_slots is flaky results
hsbt (Hiroshi SHIBATA)
11:15 AM Bug #21203 (Closed): TestGc#test_gc_parameter_init_slots is flaky results
Applied in changeset commit:git|a671b25525279706d1fa2ee3b25ef45e3ec0eb89.
----------
[Bug #21203] Skip TestGc#test_gc_parameter_init_slots since it is flaky (#13025)
https://bugs.ruby-lang.org/issues/21203
TestGc#test_gc_parameter_ini...
ono-max (Naoto Ono)
09:20 AM Revision a671b255 (git): [Bug #21203] Skip TestGc#test_gc_parameter_init_slots since it is flaky (#13025)
https://bugs.ruby-lang.org/issues/21203
TestGc#test_gc_parameter_init_slots is a flaky test that fails intermittently. Until the issue with flakiness is resolved, I will skip it.
ono-max (Naoto Ono)
06:58 AM Revision 67a7d4a0 (git): [rubygems/rubygems] Bump up minimum required version for cmake 4
https://github.com/rubygems/rubygems/commit/3e77caeddf hsbt (Hiroshi SHIBATA)
04:31 AM Revision cd195248 (git): [rubygems/rubygems] Stay away from FileUtils.rm_rf in Bundler specs
Instead, skip the spec when run by ruby-core. Maybe the root cause can
be fixed at some point.
https://github.com/rubygems/rubygems/commit/09594ae5b8
deivid (David Rodríguez)
02:25 AM Bug #21193: Inherited callback returns `nil` for `Object.const_source_location`
I don't have a strong opinion for this proposal. Aligning the order of meta-programming sounded nice, but when we see non-trivial compatibility issue, I'd rather revert this change altogether.
Matz.
matz (Yukihiro Matsumoto)
12:57 AM Revision 79f3167e (git): [rubygems/rubygems] Let compact index response parser consistently return a mutable dependencies array
That restores support for compact index dummy implementations that only lists
versions, without checksums or dependencies.
This format is undocumented, so we may want to get rid of it in the
future. However, some of our tests rely on it...
deivid (David Rodríguez)
12:56 AM Revision 92422576 (git): Remove compact index response parser from Bundler
It's available in RubyGems since 3.2.3 and we no longer support that old
version.
deivid (David Rodríguez)
12:55 AM Revision fce2c386 (git): [rubygems/rubygems] Sorting files in metadata for reproducibility
https://github.com/rubygems/rubygems/commit/792117980b Giacomo Benedetti

03/31/2025

10:52 PM Feature #15574: Prohibit to pass a block on super() implicitly
There's still a problem here when an "unused block" warning is emitted from native code.
The current behavior is actually quite counter-intuitive. Take this example of extending `Array` and overriding `index`.
```ruby
class MyArra...
headius (Charles Nutter)
10:02 PM Bug #21207: CSV gem not installing in head
I have a GitHub repo [github-actions-ruby-info](https://github.com/MSP-Greg/github-actions-ruby-info/actions) that logs information about Ruby builds on most GHA supported platforms.
None of the current Ubuntu and macOS head builds ha...
MSP-Greg (Greg L)
04:05 PM Bug #21207 (Closed): CSV gem not installing in head
The current MinGW workflow in Ruby shows:
```text
skipped bundled gems:
csv-3.3.4.gem not found in bundled_gems
```
I verified the same locally with both a Windows UCRT build and an Ubuntu build, and the ruby...
MSP-Greg (Greg L)
08:48 PM Feature #18784 (Closed): `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
jeremyevans0 (Jeremy Evans)
07:30 PM Feature #18784: `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask exceptions
I realized I never replied to latest objections from @mame to this feature.
My use case is to make sure temporary test files and folders are cleaned after each test, because if they are not cleaned the following tests may not work as ...
deivid (David Rodríguez)
08:37 PM Revision 6d70847e (git): Make free, memsize functions of IO::Buffer static
They are not used outside of io_buffer.c, so we can make them static. peterzhu2118 (Peter Zhu)
07:57 PM Revision 0fad0ce3 (git): [ruby/prism] Use `xmalloc()`/`xfree()`
https://github.com/ruby/prism/commit/bd9027f0ab Alexander Momchilov
06:49 PM Bug #21208 (Assigned): `Ractor#send(move: true)` allow moving objects that are on the stack, and used by C code.
The following script causes a crash:
```ruby
rac = Ractor.new do
Ractor.receive
end
hash = Hash[*50.times]
hash.merge!(12 => 0, 14 => 0) do |key, old_val, new_val|
if key == 12
rac.send(hash, move: true)
end
n...
byroot (Jean Boussier)
06:49 PM Revision 2d903649 (git): [DOC] Tweaks for Hash doc
burdettelamar (Burdette Lamar)
06:48 PM Revision 765918d2 (git): [DOC] Tweaks for docs about contributing (#13012)
burdettelamar (Burdette Lamar)
06:47 PM Revision cdb1bf1e (git): [DOC] Tweaks for Hash#update
burdettelamar (Burdette Lamar)
04:10 PM Revision a61e7118 (git): Provide compaction support for argf_type
eightbitraptor (Matt V-H)
04:10 PM Revision 60121452 (git): Mark rb_io_buffer_type references declaratively
allowing them to support compaction and be moved. eightbitraptor (Matt V-H)
03:10 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
https://github.com/ruby/ruby/pull/13023 byroot (Jean Boussier)
02:46 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
Yes, copy as well is a problem. The best solution is to not allow these callbacks, because even if they run and you try to traverse the graph again to error or copy/move it, the callback could have spawned a thread that sets an unshareab... luke-gru (Luke Gruber)
02:43 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
Also I don't quite get why this is an issue with `move: true` but isn't when doing a copy. byroot (Jean Boussier)
02:40 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
For context, even though I didn't precisely predict these two cases, I was expecting `initialize_cone` to be problematic. In the `move: true` case we certainly shouldn't invoke it.
But also, this patch isn't really meant as a final so...
byroot (Jean Boussier)
02:35 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
This change seems to have a regression in this case as well.
```ruby
a = Object.new
b = Object.new
p "outside: #{b}"
a.instance_variable_set("@b", b)
r = Ractor.new do
obj = Ractor.receive
p "inside: #{obj}"
p "inside: #{obj.inst...
luke-gru (Luke Gruber)
02:32 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
@luke-gru indeed. byroot (Jean Boussier)
02:16 PM Bug #20255: Embedded arrays aren't moved correctly across ractors
Hi Jean, thanks for taking care of this issue. Your change makes sense to me but I have a small concern regarding the potential call to `initialize_clone`. When allowing user-defined hooks like this in Ractor move logic, the user can add... luke-gru (Luke Gruber)
10:02 AM Bug #20255 (Closed): Embedded arrays aren't moved correctly across ractors
Applied in changeset commit:git|0350290262ea0fbc4e1807901797ee8a6970c2b9.
----------
Ractor: Fix moving embedded objects
[Bug #20271]
[Bug #20267]
[Bug #20255]
`rb_obj_alloc(RBASIC_CLASS(obj))` will always allocate from the basic
40B ...
byroot (Jean Boussier)
02:56 PM Revision 8a475d15 (git): Implement `dcompact` for Time objects
byroot (Jean Boussier)
10:02 AM Bug #20267 (Closed): Hashes that use ar_table aren't moved properly across ractors
Applied in changeset commit:git|0350290262ea0fbc4e1807901797ee8a6970c2b9.
----------
Ractor: Fix moving embedded objects
[Bug #20271]
[Bug #20267]
[Bug #20255]
`rb_obj_alloc(RBASIC_CLASS(obj))` will always allocate from the basic
40B ...
byroot (Jean Boussier)
10:02 AM Bug #20271 (Closed): Issue with moving embedded string across ractors
Applied in changeset commit:git|0350290262ea0fbc4e1807901797ee8a6970c2b9.
----------
Ractor: Fix moving embedded objects
[Bug #20271]
[Bug #20267]
[Bug #20255]
`rb_obj_alloc(RBASIC_CLASS(obj))` will always allocate from the basic
40B ...
byroot (Jean Boussier)
10:01 AM Revision 7db0e071 (git): Don't preserve `object_id` when moving object to another Ractor
That seemed like the logical thing to do to me, but ko1 disagree. byroot (Jean Boussier)
10:01 AM Revision 03502902 (git): Ractor: Fix moving embedded objects
[Bug #20271]
[Bug #20267]
[Bug #20255]
`rb_obj_alloc(RBASIC_CLASS(obj))` will always allocate from the basic
40B pool, so if `obj` is larger than `40B`, we'll create a corrupted
object when we later copy the shape_id.
Instead we can us...
byroot (Jean Boussier)
09:14 AM Bug #21183: Ractor error with Prism::VERSION
It looks handled on 3.4.2 already:
```sh
$ ruby -ve 'require "prism"; puts Prism::VERSION.frozen?'
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-linux]
true
```
Since this is about `error_highlight`, it still needs...
Earlopain (Earlopain _)
09:14 AM Revision 532b9246 (git): Initialize ractor thgroup in `thread_do_start_proc`
Followup: https://github.com/ruby/ruby/pull/13013 byroot (Jean Boussier)
08:26 AM Bug #17506 (Closed): Ractor isolation broken by ThreadGroup
Applied in changeset commit:git|5e421ce8d949a4f92568db359be0d188b66e58ca.
----------
ractor: don't inherit the default thread group
[Bug #17506]
`Thread.current.group` isn't shareable so it shouldn't be inherited
by the main thread of...
byroot (Jean Boussier)
08:25 AM Revision 5e421ce8 (git): ractor: don't inherit the default thread group
[Bug #17506]
`Thread.current.group` isn't shareable so it shouldn't be inherited
by the main thread of a new Ractor.
This cause an extra allocation when spawning a ractor, which could
be elided with a bit of extra work, but not sure if...
byroot (Jean Boussier)
08:25 AM Feature #21205: Make File::Stat#birthtime available on Linux
Switching this to a feature request. byroot (Jean Boussier)
05:48 AM Feature #21205: Make File::Stat#birthtime available on Linux
byroot (Jean Boussier) wrote in #note-1:
> Contrary to FreeBSD, on Linux the `birthtime` isn't present in the struct returned by `stat(2)`: https://man7.org/linux/man-pages/man3/stat.3type.html (see how there is no `btime`).
I know. ...
BertramScharpf (Bertram Scharpf)
07:14 AM Revision 2263e26f (git): Update default gems list at 502fcfcc46fe1362b30d311e2fc03b [ci skip]
git[bot]
07:13 AM Revision 502fcfcc (git): stringio-3.1.6 has been released
hsbt (Hiroshi SHIBATA)
06:08 AM Revision a2b03ba7 (git): Skip test_ractor.rb with ModGC workflow because this test is flaky
hsbt (Hiroshi SHIBATA)
05:43 AM Revision c8ecaad4 (git): Update bundled gems list at 679e3e5b333a36a6621ba03c9c10d6 [ci skip]
git[bot]
05:42 AM Revision 679e3e5b (git): Specified commits for removing csv-filter executable
hsbt (Hiroshi SHIBATA)
05:42 AM Revision 91973a59 (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)
05:06 AM Revision 397334ab (git): Bundle rbs-3.9.2
soutaro (Soutaro Matsumoto)
05:06 AM Revision 83518d8d (git): Update rdoc-6.13.1
hsbt (Hiroshi SHIBATA)
05:06 AM Revision 0dae3edb (git): Also skip test_load(JSONSingletonTest)
hsbt (Hiroshi SHIBATA)
05:06 AM Revision 0a097e6e (git): Fix `{}`
soutaro (Soutaro Matsumoto)
05:06 AM Revision 3fb2006b (git): Skip RDoc tests
soutaro (Soutaro Matsumoto)
05:05 AM Revision e47f6215 (git): Bundle rbs-3.9.1
soutaro (Soutaro Matsumoto)
02:59 AM Revision 372515f3 (git): Don't set `saved_ec.tag` to `NULL` in `cont_init()`
刘皓
02:59 AM Revision 3a730be8 (git): Fix jump buffer leak in setjmp handler in WASI builds
刘皓
02:59 AM Revision 72fc9c7b (git): Fix stack pointer corruption in setjmp handler in WASI builds
刘皓
02:39 AM Bug #21206 (Open): Segmentation fault on ISeq#to_binary
Found this SEGV using bootsnap.
This could well be architecture dependent because of ISeqs being so by nature.
Also this doesn't happen when the ISeq is created using `compile_prism`.
```
$ ruby -ve 'RubyVM::InstructionSequence...
shyouhei (Shyouhei Urabe)
12:39 AM Revision dea505de (git): [rubygems/rubygems] Allow ruby platform to be remove also when dependencies have changed
Since we will now add it back if the final resolution is compatible, we
can also get this kind of edge case (`bundle add`) working.
https://github.com/rubygems/rubygems/commit/cdc5ebec77
deivid (David Rodríguez)
12:39 AM Revision b2bcd360 (git): [rubygems/rubygems] Remove edge cases for not removing invalid platforms
Instead, remove them anytime we find dependencies don't match the
lockfile for a platform, and then add them back after resolution if
they ended up being valid.
https://github.com/rubygems/rubygems/commit/220bd77887
deivid (David Rodríguez)
12:39 AM Revision f72d5eff (git): [rubygems/rubygems] `SpecSet#add_extra_platforms!` doesn't need to return anything
https://github.com/rubygems/rubygems/commit/9fd92ade54 deivid (David Rodríguez)
12:39 AM Revision 91df1795 (git): [rubygems/rubygems] Split finding and removing invalid platforms
I don't like traversing the array and modifying it at the same time
while it seems to work.
https://github.com/rubygems/rubygems/commit/6551c74c27
deivid (David Rodríguez)
12:39 AM Revision f8720b01 (git): [ruby/json] Remove caller location assertions
Fix: https://github.com/ruby/json/pull/781
Tests are ran a bit differently in ruby/ruby
and this assertion breaks.
https://github.com/ruby/json/commit/0d4fc669ed
byroot (Jean Boussier)
12:39 AM Revision a7ab156d (git): Revert "Relax assertion pattern for ruby repo"
This reverts commit 09b94688731a73a4ee63969a22ba7d537223e02a. hsbt (Hiroshi SHIBATA)
12:16 AM Revision a203603b (git): Correct typo in Ractor comment
Uaitt (Lorenzo Zabot)

03/30/2025

05:24 PM Revision d7e46543 (git): [ruby/prism] Fix parser translator when pinning hash with string keys
`StringNode` and `SymbolNode` don't have the same shape
(`content` vs `value`) and that wasn't handled.
I believe the logic for the common case can be reused.
I simply left the special handling for implicit nodes in pattern matching
and...
Earlopain (Earlopain _)
05:22 PM Bug #21197 (Closed): Prism does not accept newline after defined? keyword
Applied in changeset commit:git|052794bfe1970e90f4f4f9e37fc362dd27903a8d.
----------
[ruby/prism] Accept a newline after the defined? keyword
[Bug #21197]
https://github.com/ruby/prism/commit/22be955ce9
kddnewton (Kevin Newton)
05:22 PM Revision 052794bf (git): [ruby/prism] Accept a newline after the defined? keyword
[Bug #21197]
https://github.com/ruby/prism/commit/22be955ce9
kddnewton (Kevin Newton)
01:46 PM Revision 6b5aa432 (git): [ruby/openssl] Skip PKCS7 with indefinite length test in AWS-LC
AWS-LC had been decoding the indefinite BER to an unusable output. We
should skip the test until indefinite BER decoding in AWS-LC is
properly fixed.
Changes:
1. AWS-LC will be looking to fix the parsing for indefinite BER
constructed s...
sachiang (Samuel Chiang)
09:26 AM Bug #17506: Ractor isolation broken by ThreadGroup
Retested on 3.4.2, and it seems the bug is still present. byroot (Jean Boussier)
09:13 AM Feature #21205: Make File::Stat#birthtime available on Linux
Contrary to FreeBSD, on Linux the `birthtime` isn't present in the struct returned by `stat(2)`: https://man7.org/linux/man-pages/man3/stat.3type.html (see how there is no `btime`).
What `File.birthtime` does, it that it uses `statx(2...
byroot (Jean Boussier)
07:27 AM Feature #21205 (Closed): Make File::Stat#birthtime available on Linux
Not that I would run into any problem with it, but this behaviour is confusing:
RbConfig::CONFIG["platform"] #=> "amd64-freebsd14"
(File.birthtime "/").class #=> Time
(File.stat "/").birthtime.class #=> Time
...
BertramScharpf (Bertram Scharpf)
03:41 AM Bug #21195: Crash when using IO#timeout
ruby_3_3 commit:51dee044c1cb079a463118c5113ae9fdf96e463e merged revision(s) commit:5f77f9bea61fb4cc8447a76e191fdfb28f076862. nagachika (Tomoyuki Chikanaga)
03:20 AM Bug #21117: Inconsistent behaviour between "_1" and "it" variables
I decided to mark "WONTFIX" for ruby_3_3. Introducing syntax error might cause unavoidable problem in real world applications. nagachika (Tomoyuki Chikanaga)
03:11 AM Revision 51dee044 (git): merge revision(s) 5f77f9bea61fb4cc8447a76e191fdfb28f076862: [Backport #21195]
Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)
[Bug #21195]
nagachika (Tomoyuki Chikanaga)

03/29/2025

09:05 PM Revision 9e87323a (git): [DOC] Tweaks for Hash#values_at
burdettelamar (Burdette Lamar)
09:04 PM Revision dbc1ceca (git): [DOC] Tweaks for Hash#values
burdettelamar (Burdette Lamar)
09:04 PM Revision 4e3bc65e (git): [DOC] Tweaks for Hash#has_value?
burdettelamar (Burdette Lamar)
11:46 AM Bug #21202 (Closed): Ripper wrongly concats separate tstring_content within nested unterminated heredoc
Applied in changeset commit:git|a4a60195502add094fb52a587411bbd0c19facce.
----------
[Bug #21202] Fix wrong token concat while tokenizing nested unterminated heredoc (#13000)
tompng (tomoya ishida)
11:46 AM Revision a4a60195 (git): [Bug #21202] Fix wrong token concat while tokenizing nested unterminated heredoc (#13000)
tompng (tomoya ishida)
08:51 AM Revision 549c7fe2 (git): Adjust indentation for user defined parameterized rule
This PR just fixing indentation. ydah (Yudai Takada)
07:50 AM Bug #21094: Module#set_temporary_name does not affect a name of a nested module
ruby_3_3 commit:aac5c546cd35ff0aeab120e3724fbb1296892ae3 merged revision(s) commit:f69ad0e810e1fdc18dc12f77bbecfa49999ef3bf. nagachika (Tomoyuki Chikanaga)
07:49 AM Revision aac5c546 (git): merge revision(s) f69ad0e810e1fdc18dc12f77bbecfa49999ef3bf: [Backport #21094]
[Bug #21094] Update nested module names when setting temporary name nagachika (Tomoyuki Chikanaga)
06:59 AM Bug #21186: Inconsistent parsing of ?あand 0
ruby_3_3 commit:770060f7662698ca74bc28428919a688b8fe06d2 merged revision(s) commit:1acfb29015dbc38fd345d8786aa78aad59f7dcd1. nagachika (Tomoyuki Chikanaga)
06:58 AM Bug #19841: Marshal.dump stack overflow with recursive Time
ruby_3_3 commit:d2eda78e4091a99c1a387d43967af5794d8eac70 merged revision(s) commit:9459bedd84d479bb1d7d3d40bada1cecb4701c37. nagachika (Tomoyuki Chikanaga)
06:32 AM Revision 770060f7 (git): merge revision(s) 1acfb29015dbc38fd345d8786aa78aad59f7dcd1: [Backport #21186]
[Bug #21186] multibyte char literal should be a single letter word nagachika (Tomoyuki Chikanaga)
06:21 AM Revision d2eda78e (git): merge revision(s) 9459bedd84d479bb1d7d3d40bada1cecb4701c37: [Backport #19841]
[Bug #19841] Refine error on marshaling recursive USERDEF nagachika (Tomoyuki Chikanaga)
12:01 AM Bug #21183 (Closed): Ractor error with Prism::VERSION
Fixed in the master branch by commit:f27ed98effff9891d28edc7119d45811bcedd510, marking for backport. jeremyevans0 (Jeremy Evans)

03/28/2025

10:34 PM Feature #17414 (Closed): Ractor should allow access to shareable attributes for Modules/Classes
I think we can close this as accessing the class instance variables has been allowed for a while (Ruby 3.1?)
``` ruby
module Config
class << self
attr_accessor :conf
end
self.conf = 42
end
Ractor.new { Config.conf =...
jhawthorn (John Hawthorn)
04:36 PM Revision 332f5d0b (git): Remove RUBY_FL_PROMOTED{0,1} from debugger scripts
These flags were removed in d426343418aab6148706860bd1678ac309dc12c0 and
print_flags is broken because of it.
etienne (Étienne Barrié)
02:08 PM Feature #20757 (Closed): Make rb_tracearg_(parameters|eval_script|instruction_sequence) public C-API
Applied in changeset commit:git|04ebedf7f0144e8d5b8b2cd9cd243a2581bf974c.
----------
Make rb_tracearg_(parameters|eval_script|instruction_sequence) public C-API
This allows C-Extension developers to call those methods to retrieve
infor...
richardboehme (Richard Böhme)
02:08 PM Revision 3aee7b98 (git): Mark first argument to all C-API tracepoint functions as nonnull
richardboehme (Richard Böhme)
02:08 PM Revision 04ebedf7 (git): Make rb_tracearg_(parameters|eval_script|instruction_sequence) public C-API
This allows C-Extension developers to call those methods to retrieve
information about a TracePoint's parameters, eval script and
instruction sequence.
Implements [Feature #20757]
richardboehme (Richard Böhme)
10:56 AM Bug #21204 (Assigned): `TestEtc#test_ractor_parallel` is still flaky result with ModGC/MMTk
eightbitraptor (Matt V-H)
10:29 AM Bug #21204: `TestEtc#test_ractor_parallel` is still flaky result with ModGC/MMTk
This seems a ModGC bug as the failure seems to happen (from what I heard) only in the ModGC workflow, cc @eightbitraptor @peterzhu2118
The test has been omitted only for the ModGC workflow: https://github.com/ruby/etc/pull/55
Eregon (Benoit Daloze)
03:32 AM Bug #21204 (Assigned): `TestEtc#test_ractor_parallel` is still flaky result with ModGC/MMTk
https://github.com/ruby/ruby/actions/runs/14121185441/job/39561623937?pr=13004
```
1) Failure:
TestEtc#test_ractor_parallel [/home/runner/work/ruby/ruby/src/test/etc/test_etc.rb:178]:
pid 150540 killed by SIGABRT (signal 6)...
hsbt (Hiroshi SHIBATA)
05:19 AM Revision fc260046 (git): Remove test_retry_workers
The test fails randomly for unknown reason.
https://github.com/ruby/ruby/actions/runs/14121674932/job/39562945096?pr=12993
```
1) Error:
TestParallel::TestParallel#test_retry_workers:
Test::Unit::ProxyError: execution expired (s...
mame (Yusuke Endoh)
05:19 AM Revision 28c7ae66 (git): Try avoiding "invalid byte sequence in UTF-8"
mame (Yusuke Endoh)
05:19 AM Revision 12f8dda9 (git): Report the actual time wated for timeout errors in TestParallel
mame (Yusuke Endoh)
05:07 AM Revision c3ca9313 (git): TestRegexp#test_match_cache_positive_look_ahead_complex: Extend the timeout limit
mame (Yusuke Endoh)
04:06 AM Bug #21199 (Third Party's Issue): Psych.dump and load on Date before 1582-10-15
YAML has no specification of calendar systems.
If YAML specifies it, we would obey it of course.
Until then, YAML is not suitable for such dates, just don't use such dates.
nobu (Nobuyoshi Nakada)
01:12 AM Bug #21199: Psych.dump and load on Date before 1582-10-15
I suggest Psych.dump and Psych.load should deal the date as the default style Date::ITALY, like Date.new.
Normal people only know Date::ITALY, which skip 1582-10-05~1582-10-14.
I also suggest Date.to_s should convert inner date style to ...
fitmap (Justin Peal)
03:58 AM Revision 8582d931 (git): [ruby/etc] Skip TestEtc#test_ractor_parallel on ModGC workflow
(https://github.com/ruby/etc/pull/55)
https://bugs.ruby-lang.org/issues/21204
TestEtc#test_ractor_parallel is only failing intermittently on ModGC workflow after 87fb0c4. So, we'll skip this test on ModGC workflow.
https://github.com/...
ono-max (Naoto Ono)
03:44 AM Revision 1e715bd2 (git): Skip failing rbs tests for deprecated JSON methods
hsbt (Hiroshi SHIBATA)
03:44 AM Revision 2ba37d24 (git): spec/mspec/tool/wrap_with_guard.rb 'ruby_version_is ...3.5' spec/ruby/security/cve_2020_10663_spec.rb
hsbt (Hiroshi SHIBATA)
03:44 AM Revision 09b94688 (git): Relax assertion pattern for ruby repo
hsbt (Hiroshi SHIBATA)
03:44 AM Revision 3bbb52f5 (git): [ruby/json] Add missing assert_deprecated_warning
https://github.com/ruby/json/commit/1b16a82980 byroot (Jean Boussier)
03:44 AM Revision ec171b40 (git): [ruby/json] Move `create_addtions` logic in Ruby.
By leveraging the `on_load` callback we can move all this logic
out of the parser. Which mean we no longer have to duplicate
that logic in both parser and that we'll later be able to extract
it entirely from the gem.
https://github.com/...
byroot (Jean Boussier)
03:44 AM Revision e8c46f4c (git): [ruby/json] JSON.load invoke the proc callback directly from the parser.
And substitute the return value like `Marshal.load` doesm
which I can only assume was the intent.
This also open the door to re-implement all the `create_addition`
logic in `json/common.rb`.
https://github.com/ruby/json/commit/73d2137fd3
byroot (Jean Boussier)
03:44 AM Revision 80a59a62 (git): [ruby/json] Remove more dead code
https://github.com/ruby/json/commit/eda239ad34 byroot (Jean Boussier)
03:44 AM Revision 756b75f2 (git): [ruby/json] Remove `Class#json_creatable?` monkey patch.
https://github.com/ruby/json/commit/1ca7efed1f byroot (Jean Boussier)
03:44 AM Revision 96ecac1e (git): [ruby/json] Get rid of JSON::NOT_SET
https://github.com/ruby/json/commit/760d922265 byroot (Jean Boussier)
03:44 AM Revision bba30bee (git): [ruby/json] Remove outdated JSON.iconv
https://github.com/ruby/json/commit/3de8702354 byroot (Jean Boussier)
03:44 AM Revision 26e55562 (git): [ruby/json] Cleanup JSON.pretty_generate
https://github.com/ruby/json/commit/01c47a0555 byroot (Jean Boussier)
03:44 AM Revision 2b9a9300 (git): [ruby/json] Deprecate `JSON.fast_generate`
https://github.com/ruby/json/commit/6508455d82 byroot (Jean Boussier)
03:14 AM Bug #21203 (Assigned): TestGc#test_gc_parameter_init_slots is flaky results
mame (Yusuke Endoh)
03:12 AM Bug #21203 (Assigned): TestGc#test_gc_parameter_init_slots is flaky results
I faced `TestGc#test_gc_parameter_init_slots` failure at everyday.
https://github.com/ruby/ruby/actions/runs/14120822712/job/39560620479
```
1) Failure:
TestGc#test_gc_parameter_init_slots [/home/runner/work/ruby/ruby/src/...
hsbt (Hiroshi SHIBATA)
02:15 AM Revision 589713bc (git): Ignore to build C extension for test files of bundled gems
hsbt (Hiroshi SHIBATA)

03/27/2025

11:41 PM Revision 5ab0b914 (git): [Backport #21141] [DOC] Refine description of `Time#utc?`
nobu (Nobuyoshi Nakada)
11:41 PM Revision bd99a2ef (git): [Backport #21141] [DOC] Clarify what time is in UTC
nobu (Nobuyoshi Nakada)
10:24 PM Revision e652af18 (git): Update LEGAL to mention ext/json/vendor
One file is under MIT, which is already the case of many files
in Ruby, so it's fine.
The other is under the Boost Software License, which is very
similar to BSD and is fine to include in Ruby as far as I'm
aware.
byroot (Jean Boussier)
10:23 PM Revision 00c6e537 (git): FCALL shouldn't be forwarded from caller
When we forward an FCALL (a method call with an implicit self), we
shouldn't forward the FCALL flag because it ignores method visibility
checks. This patch removes the FCALL flag from callers.
[Bug #21196]
tenderlovemaking (Aaron Patterson)
10:23 PM Revision aa7380f9 (git): Fix handling of `error`/`errno` in `io_internal_wait`. (#12961)
[Bug #21195] Samuel Williams
10:08 PM Bug #21094: Module#set_temporary_name does not affect a name of a nested module
3.4 backport done at commit:5b3970f68b9108e0976b75b5d67da8c56eaa9db4 alanwu (Alan Wu)
09:57 PM Bug #21186: Inconsistent parsing of ?あand 0
3.4 backport is done. commit:8b491169c32621d4e74324eed08465448dfc54d5 alanwu (Alan Wu)
08:59 PM Revision 43683e1e (git): Avoid allocation for anonymous positional splat with no arguments
Anonymous positional splats cannot be directly accessed, they can
only be passed as splats to other methods. So if an anonymous
positional splat would be empty, you can use a shared frozen
empty array to save an allocation.
```ruby
def...
jeremyevans (Jeremy Evans)
08:39 PM Revision 72cb6897 (git): [ruby/etc] Attempt to re-enable TestEtc#test_ractor_parallel
* If this fails, please revert this commit in ruby/etc
to keep the repos sync'ed.
https://github.com/ruby/etc/commit/87fb0c4a83
Eregon (Benoit Daloze)
08:39 PM Revision 0581947a (git): [ruby/etc] Speedup TestEtc#test_ractor_parallel
https://github.com/ruby/etc/commit/18c12c084c Eregon (Benoit Daloze)
08:21 PM Revision 2f1ac3fe (git): [ruby/etc] Increase timeout for test_ractor_parallel
* It seems much slower on macOS (locally on Linux it's always < 1 second).
https://github.com/ruby/etc/commit/9e46857011
Eregon (Benoit Daloze)
08:14 PM Revision d49483a7 (git): [ruby/prism] Move snapshots
This is messing up the CRuby sync, so moving them out of the test
directory will make this easier.
https://github.com/ruby/prism/commit/7ba13bfb68
kddnewton (Kevin Newton)
06:38 PM Bug #21202: Ripper wrongly concats separate tstring_content within nested unterminated heredoc
Pull request: https://github.com/ruby/ruby/pull/13000 tompng (tomoya ishida)
06:33 PM Bug #21202 (Closed): Ripper wrongly concats separate tstring_content within nested unterminated heredoc
~~~ruby
code = <<~'CODE'
<<H1
#{<<H2}a
H2
b
CODE
Ripper.tokenize(code) #=> ["<<H1", "\n", "\#{", "<<H2", "}", "a\nb\n", "H2\n"]
~~~
`"a\nb\n"` should be a separate token `"a\n"` and `"b\n"`
tompng (tomoya ishida)
06:17 PM Feature #21047 (Closed): Change `*nil` to not call `nil.to_a`, for consistency with `**nil`
Applied in changeset commit:git|67d1dd2ebd622c27d2ae0681c544d9f5d2f5349b.
----------
Avoid array allocation for *nil, by not calling nil.to_a
The following method call:
```ruby
a(*nil)
```
A method call such as `a(*nil)` previously a...
jeremyevans (Jeremy Evans)
06:17 PM Feature #21109 (Closed): Want to clarify how $/ is handled in Ractor
Applied in changeset commit:git|6ecfe643b5d8d64682c6f6bce5b27db5c007331d.
----------
Freeze $/ and make it ractor safe
[Feature #21109]
By always freezing when setting the global rb_rs variable, we can ensure
it is not modified and ca...
etienne (Étienne Barrié)
06:17 PM Revision 67d1dd2e (git): Avoid array allocation for *nil, by not calling nil.to_a
The following method call:
```ruby
a(*nil)
```
A method call such as `a(*nil)` previously allocated an array, because
it calls `nil.to_a`, but I have determined this array allocation is
unnecessary. The instructions in this case are:
...
jeremyevans (Jeremy Evans)
06:11 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
tenderlovemaking (Aaron Patterson) wrote in #note-2:
> I guess if refined methods are rare enough, maybe it's not worthwhile to allocate "refinement inline cache"? In other words, refined methods are always an IC miss?
I believe that wa...
jhawthorn (John Hawthorn)
05:55 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
The downside however is that I think we'd need to lock the VM to lookup methods? So it doesn't help with making Ractor lock less. byroot (Jean Boussier)
05:52 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
> refined methods are always an IC miss?
I like that idea.
byroot (Jean Boussier)
05:29 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
byroot (Jean Boussier) wrote in #note-1:
> > I was wondering if there might be any ideas to make it faster, or to handle the invalidation more efficiently.
> ...
I guess if refined methods are rare enough, maybe it's not worthwhile to...
tenderlovemaking (Aaron Patterson)
04:37 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
> I was wondering if there might be any ideas to make it faster, or to handle the invalidation more efficiently.
The solution is likely to keep the list (set) of all existing call caches that belong to a refinement, as to save the ob...
byroot (Jean Boussier)
11:20 AM Bug #21201 (Closed): Performance regression when defining methods inside `refine` blocks
After the change introduced in [PR #10037](https://github.com/ruby/ruby/pull/10037), a significant performance regression has been observed when defining methods within refine blocks.
The PR correctly fixes a bug where `callcache` inv...
alpaca-tc (Hiroyuki Ishii)
05:52 PM Feature #21133 (Closed): [ruby/logger] Add an option to disable writing the header when creating a new log file
jeremyevans0 (Jeremy Evans)
05:24 PM Feature #21133: [ruby/logger] Add an option to disable writing the header when creating a new log file
viralpraxis (Iaroslav Kurbatov) wrote:
> Creating a logger automatically writes a hardcoded header comment ("# Logfile created on ..."):
> ...
This one can be closed since the PR was merged.
viralpraxis (Iaroslav Kurbatov)
04:54 PM Revision 6ecfe643 (git): Freeze $/ and make it ractor safe
[Feature #21109]
By always freezing when setting the global rb_rs variable, we can ensure
it is not modified and can be accessed from a ractor.
We're also making sure it's an instance of String and does not have any
instance variables....
etienne (Étienne Barrié)
02:56 PM Revision 49d49d59 (git): [ruby/psych] Format Date in ISO-8601 explicitly
Fix https://github.com/ruby/psych/pull/644
https://github.com/ruby/psych/commit/b1ade765ba
nobu (Nobuyoshi Nakada)
12:22 PM Revision 5adb2591 (git): Skip TestThreadInstrumentation#test_sleeping_inside_ractor on ModGC workflow (#12996)
TestThreadInstrumentation#test_sleeping_inside_ractor is a flaky and failing intermittently. Additionally, Launchable reported this test as a top flaky test. (Link: https://app.launchableinc.com/organizations/ruby/workspaces/ruby/insight... ono-max (Naoto Ono)
10:09 AM Revision c577416b (git): Do not run ruby/spec on CI on Ruby 3.0
andrykonchin (Andrew Konchin)
10:09 AM Revision bac22c98 (git): Update to ruby/spec@5e579e2
andrykonchin (Andrew Konchin)
10:09 AM Revision 53a930f1 (git): Update to ruby/mspec@484310d
andrykonchin (Andrew Konchin)
10:02 AM Bug #21200 (Assigned): Ractor spuriously hangs, segfaults or errors on TestEtc#test_ractor_parallel
For a new test `test_ractor_parallel` I added in https://github.com/ruby/etc/pull/52/files
This seems a Ractor bug.
Example failures:
https://github.com/ruby/ruby/actions/runs/14097239052/job/39486770259?pr=12990
```
1) Fail...
Eregon (Benoit Daloze)
09:52 AM Bug #21199 (Feedback): Psych.dump and load on Date before 1582-10-15
Note that `date` and `date2` are equal in your reproduction code.
```ruby
require 'date'
require 'psych'
date = Date.new(1582, 10, 4)
p "date=#{date.inspect}"
str = Psych.dump(date, permitted_classes: [Date])
p "str=#{str}"
d...
mame (Yusuke Endoh)
09:22 AM Bug #21199 (Third Party's Issue): Psych.dump and load on Date before 1582-10-15
The code is:
```ruby
require 'date'
require 'psych'
date = Date.new(1582, 10, 4)
p "date=#{date.inspect}"
str = Psych.dump(date, permitted_classes: [Date])
p "str=#{str}"
date2 = Psych.load(str, permitted_classes: [Date])
p ...
fitmap (Justin Peal)
07:57 AM Revision df08cc62 (git): [rubygems/rubygems] Bump up connection_pool-2.5.0 with rake vendor:install
https://github.com/rubygems/rubygems/commit/33c3caa63f hsbt (Hiroshi SHIBATA)
07:57 AM Revision 62a026a4 (git): [rubygems/rubygems] Fix Style/RedundantParentheses by bin/rubocop -a
https://github.com/rubygems/rubygems/commit/4bbf02493e hsbt (Hiroshi SHIBATA)
07:57 AM Revision c9e07da5 (git): [rubygems/rubygems] Resolved Lint/ShadowingOuterLocalVariable warning
https://github.com/rubygems/rubygems/commit/01a14a7073 hsbt (Hiroshi SHIBATA)
07:56 AM Revision d4a97ea3 (git): Update the all of gemfile deps
hsbt (Hiroshi SHIBATA)
05:21 AM Bug #21198: Fiber::Scheduler#blocking_operation_wait crash due to stack-use-after-return
A solution to this would be to invalidate the proc afterwards. I don't know if this is possible but I can take a look. ioquatix (Samuel Williams)
04:57 AM Revision 752a1d78 (git): [rubygems/rubygems] Implement pub_grub strategy interface
My application spends more than 30% of time during `bundle update`
comparing versions due to versions being sorted inside
next_package_to_try. This has been addressed in pub_grub by defining a
strategy interface (a `#next_package_and_ver...
Hartley McGuire
04:57 AM Revision af594f51 (git): [rubygems/rubygems] Have "gem exec" sort executable names in error message.
This decouples `gem exec` behavior (and tests) from the sort order of
the gemspec.
https://github.com/rubygems/rubygems/commit/911cd29159
Ellen Marie Dash
04:54 AM Revision 9f17a0c7 (git): Get rid of SAFE_STATE_PROTOTYPE
It was only used by JRuby and TruffleRuby to call `SAFE_STATE_PROTOTYPE.dup`
instead of `State.new` which isn't an worthy optimization.
byroot (Jean Boussier)
04:54 AM Revision 4dde7101 (git): Refactor jeaiii-ltoa.h
Some relatively minor change to make the library more in line
with the gem. Some renaming, etc.
byroot (Jean Boussier)
03:28 AM Revision 1b8e6568 (git): Pend a test for ractor in etc
... because it is flaky mame (Yusuke Endoh)
02:37 AM Revision c6f89e26 (git): Skip failing rbs tests for removing deprecated methods
hsbt (Hiroshi SHIBATA)
02:37 AM Revision 6d82ea7d (git): Update ext/json/generator/depend
hsbt (Hiroshi SHIBATA)
02:37 AM Revision ee85745c (git): Removed trailing spaces
hsbt (Hiroshi SHIBATA)
02:37 AM Revision d1f3c812 (git): Faster integer formatting
This commit provides an alternative implementation for a
long → decimal conversion.
The main difference is that it uses an algorithm pulled from
https://github.com/jeaiii/itoa.
The source there is C++, it was converted by hand to C for
...
radiospiel (Enrico Thierbach)
02:37 AM Revision dc6ffbbe (git): [ruby/json] Remove unused `FAST_STATE_PROTOTYPE` and `PRETTY_STATE_PROTOTYPE`
https://github.com/ruby/json/commit/18e5c3c67c byroot (Jean Boussier)
02:37 AM Revision b71ec119 (git): [ruby/json] Remove `unparse` and `restore` aliases.
These were deprecated 16 years ago.
https://github.com/ruby/json/commit/a88d825a91
byroot (Jean Boussier)
02:37 AM Revision f4529ecb (git): [ruby/json] Deprecate all `*_default_options`
Globally changing the behavior of the library is a bad idea, as
many different libraries may rely on `json` and may not expect it
and likely never tested that a different default config works for them.
If you need to change the behavior...
byroot (Jean Boussier)
01:15 AM Bug #21197 (Assigned): Prism does not accept newline after defined? keyword
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #21188 (Assigned): PRISM does not end reading from tty with ^D twice
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #21168 (Assigned): Prism doesn't require argument parentheses (in some cases) when a block is present but parse.y does
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #21166 (Assigned): Fiber Scheduler is unable to be interrupted by `IO#close`.
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #21139 (Assigned): Prism and parse.y parses `it = it` differently
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #21089 (Assigned): Missing methods on enumerators created from Enumerator::product and Enumerator::Chain
hsbt (Hiroshi SHIBATA)
01:15 AM Feature #21042 (Assigned): Add and expose Thread#memory_allocations memory allocation counters
hsbt (Hiroshi SHIBATA)
01:15 AM Feature #21039 (Assigned): Ractor.make_shareable breaks block semantics (seeing updated captured variables) of existing blocks
hsbt (Hiroshi SHIBATA)
01:15 AM Feature #20959 (Assigned): Add a way to get codepage of console.
hsbt (Hiroshi SHIBATA)
01:15 AM Feature #20953 (Assigned): Array#fetch_values vs #values_at protocols
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #20920 (Assigned): When loading a file, __FILE__ gets relative paths expanded only when they start with "./"
hsbt (Hiroshi SHIBATA)
01:15 AM Bug #20816 (Assigned): Potential regression in Ruby 3.3.x (compared with 3.1 and 3.2) regarding fast syscalls and multi-threading.
hsbt (Hiroshi SHIBATA)
12:45 AM Bug #19765 (Closed): Ractor.make_shareable ignores self of a proc created from a Method
This should be fixed by commit:git|d80f3a287c5c8d0404b6cb837db360cab320cde1
The third example now also raises `can not make shareable object for #<Method: String#to_s()>`
jhawthorn (John Hawthorn)
 

Also available in: Atom