Project

General

Profile

Activity

From 04/03/2025 to 04/09/2025

04/09/2025

11:15 PM Feature #21254: Inlining Class#new
tenderlovemaking (Aaron Patterson) wrote in #note-7:
> I made a patch for it [here](https://github.com/ruby/ruby/commit/b8e37fd5cc588d05576b24c13f94c54409b2a9db), but I haven't tested it in CI yet.
@jhawthorn pointed out a problem to...
tenderlovemaking (Aaron Patterson)
10:18 PM Feature #21254: Inlining Class#new
jez (Jake Zimmerman) wrote in #note-6:
> I'm curious: could we add a second check after [this check](https://github.com/ruby/ruby/compare/master...Shopify:ruby:inline-new#diff-7e987f13e758a51be20d9ce1e38ad46cabae2aebdfe6968720f0d570db61...
tenderlovemaking (Aaron Patterson)
08:57 PM Feature #21254: Inlining Class#new
@tenderlovemaking Question about an extension to the current implementation.
We have a fair amount of code that looks like this:
```ruby
class HoldsEvenNumbers
def initialize(even)
@even = even
end
private_class_me...
jez (Jake Zimmerman)
11:02 PM Revision 86e37a9b (git): Test for the crash
nobu (Nobuyoshi Nakada)
11:02 PM Revision 7e093fb4 (git): Fix crash in TCPSocket.open
Fix segfault crash observable with TCPSocket.open(nil, nil) Luke Jahnke
08:40 PM Bug #21261: Backport fix for crash in TCPSocket.open(..., nil)
Backport PR: https://github.com/ruby/ruby/pull/13091 jhawthorn (John Hawthorn)
08:38 PM Bug #21261 (Closed): Backport fix for crash in TCPSocket.open(..., nil)
https://github.com/ruby/ruby/pull/12934
https://github.com/ruby/ruby/commit/b148dfef5aa208cafa28626fd84c9762bfdfe0ac
jhawthorn (John Hawthorn)
02:46 PM Bug #21220 (Closed): Memory corruption in update_line_coverage() [write at index -1]
Applied in changeset commit:git|0d6263bd416338a339651fb97fe4d62701704c4b.
----------
Fix coverage measurement for negative line numbers
Fixes [Bug #21220]
Co-Authored-By: Mike Bourgeous <mike@mikebourgeous.com>
Co-Authored-By: Jean Bo...
mame (Yusuke Endoh)
11:01 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
I created a PR.
https://github.com/ruby/ruby/pull/13089
The PR should prevent `RUBY_EVENT_COVERAGE_LINE` from firing on non-positive line numbers. (The fix looked easier than I thought.)
I will create another ticket for the bug ...
mame (Yusuke Endoh)
03:48 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
mame (Yusuke Endoh) wrote in #note-8:
> @mbcodeandsound Just FYI, I bet you meant to write `!(1..16).cover?(channel)` in the following line.
> ...
Yes I did, thanks (`0..15` as well rather than `1..16`)! I didn't even know about the fli...
mbcodeandsound (Mike Bourgeous)
02:45 PM Revision 0d6263bd (git): Fix coverage measurement for negative line numbers
Fixes [Bug #21220]
Co-Authored-By: Mike Bourgeous <mike@mikebourgeous.com>
Co-Authored-By: Jean Boussier <jean.boussier@gmail.com>
mame (Yusuke Endoh)
02:09 PM Feature #21258: Retire CGI library from Ruby 3.5
I am in favor of retiring cgi and keeping cgi/escape feature. Of the two options, I prefer option 1 (keep only cgi/escape feature in Ruby). It is the more backwards compatible option, and I do not think the benefits of using a new modul... jeremyevans0 (Jeremy Evans)
01:08 PM Feature #21258: Retire CGI library from Ruby 3.5
`URI.encode` (not `escape`)?
kou (Kouhei Sutou)
08:57 AM Feature #21258: Retire CGI library from Ruby 3.5
I like the idea of deprecating `CGI` and moving the `escape`/`unescape` methods!
JavaScript calls the features `"hello".encode_uri_component`, so can we call it `String#encode_uri_component`?
(I don't think this is the way we should ...
soutaro (Soutaro Matsumoto)
08:17 AM Feature #21258 (Closed): Retire CGI library from Ruby 3.5
I would like to retire CGI library from Ruby 3.5.0 release. It means CGI is not promoted bundled gems. The users need to run `gem install cgi` after Ruby 3.5 if they want to use CGI library.
## Background
I handled two CVEs related...
hsbt (Hiroshi SHIBATA)
01:31 PM Bug #21260 (Feedback): duping stringio objects shares cursors
I've found that, if I `.dup` a stringio, when I read one of the objects, the cursor also moves internally on the other:
```ruby
require "stringio"
s1 = StringIO.new("test")
s2 = s1.dup
s1.read #=> "test"
s2.read #=> ""
s1.rewi...
chucke (Tiago Cardoso)
11:04 AM Bug #21259 (Closed): The Prism compiler wrongly creates a line number of zero
test.rb
```
TracePoint.new(:line) do |tp|
p tp
end.enable
load "./target.rb"
```
target.rb
```
if true..true
end
```
```
$ ~/work/ruby/local/bin/ruby --parser=prism test.rb
#<TracePoint:line test.rb:5>
#<TracePoint...
mame (Yusuke Endoh)
10:14 AM Revision ce0d5cc0 (git): Refine dirname test on Windows
- Compare with the root of the target file
- Fix root path of UNC path
nobu (Nobuyoshi Nakada)
10:13 AM Revision 5cf7d948 (git): [DOC] Fix contributing link
It moved in https://github.com/ruby/ruby/pull/13012 but wasn't updated here Earlopain (Earlopain _)
09:23 AM Revision b200bad6 (git): bump teeny
nagachika (Tomoyuki Chikanaga)
08:28 AM Bug #21141: `Time#utc?` does not work with a timezone object
ruby_3_3 commit:4ca521e91342165ed35cb12c9868f10e2a6aa07c merged revision(s) commit:06919949a60b42a8f30e8bd0cb075e17b05eebcd, commit:51bc992822f9108ad64de32d300e1cefd0e2da59, commit:42daa6c2a2b49b4e45f40736e25c7d182860f24a. nagachika (Tomoyuki Chikanaga)
08:27 AM Revision 4ca521e9 (git): merge revision(s) 06919949a60b42a8f30e8bd0cb075e17b05eebcd, 51bc992822f9108ad64de32d300e1cefd0e2da59, 42daa6c2a2b49b4e45f40736e25c7d182860f24a: [Backport #21141]
[Bug #21141] [DOC] Clarify what time is in UTC
[Bug #21141] [DOC] Refine description of `Time#utc?`
[Bug #21141] [DOC] Fix indentation
nagachika (Tomoyuki Chikanaga)
06:51 AM Revision 9f61541f (git): Re-enabled to test at win32ole
hsbt (Hiroshi SHIBATA)
04:27 AM Bug #21257 (Assigned): YJIT can generate infinite loop when OOM
hsbt (Hiroshi SHIBATA)
03:33 AM Bug #21257: YJIT can generate infinite loop when OOM
YJIT compiles the `first` and `second` methods to this (on x86_64-linux):
```
# regenerate_branch
# Block: first@infinite-jmp.rb:2 (chain_depth: 1)
# reg_temps: 00000001
# Insn: 0001 opt_send_without_block (stack_size: 1)
# call to Objec...
rianmcguire (Rian McGuire)
03:29 AM Bug #21257 (Closed): YJIT can generate infinite loop when OOM
We've found an edge case where YJIT can generate an infinite loop (jump to the same address) when it's out-of-memory.
Reproduction:
```ruby
def first
second
end
def second
::File
end
# Make `second` side exit on its fi...
rianmcguire (Rian McGuire)
01:36 AM Bug #21167: Visual Studio 2022 17.13.x couldn't build ruby.exe
vs2022 17.14.0 preview 2.0 also has this issue.
hsbt (Hiroshi SHIBATA)
01:31 AM Revision 8ab51769 (git): sed is not requirement now
hsbt (Hiroshi SHIBATA)
01:20 AM Revision 9e93759b (git): Restore assertion that is not related mswin platform
hsbt (Hiroshi SHIBATA)
12:54 AM Revision e5801451 (git): Merge RubyGems-3.6.7 and Bundler-2.6.7
hsbt (Hiroshi SHIBATA)
12:54 AM Revision db2bf9f0 (git): Merge RubyGems-3.6.6 and Bundler-2.6.6
hsbt (Hiroshi SHIBATA)

04/08/2025

11:11 PM Revision ab4a25e4 (git): [rubygems/rubygems] Follow up to removal of rubyinstaller2 workaround
https://github.com/rubygems/rubygems/commit/5b312fd040 deivid (David Rodríguez)
11:11 PM Revision ae45a7a9 (git): [ruby/json] Cleanup jeaiii-ltoa to not need pragmas
https://github.com/ruby/json/commit/97f2924d0a byroot (Jean Boussier)
11:11 PM Revision b1362e26 (git): [ruby/json] Suppress -Wunknown-pragmas warnings
https://github.com/ruby/json/commit/97f47d1cfd nobu (Nobuyoshi Nakada)
08:45 PM Bug #21193: Inherited callback returns `nil` for `Object.const_source_location`
After exchanging impressions with @byroot today, I have created https://github.com/ruby/ruby/pull/13085 to restore the original order of the callbacks.
If that is all good, I'll followup with an updated docs + tests patch.
fxn (Xavier Noria)
05:46 PM Revision d5f94941 (git): [ruby/openssl] Fix the tests using SHA-1 Probabilistic Signature Scheme (PSS) parameters.
Fedora OpenSSL 3.5 on rawhide stopped accepting SHA-1 PSS[1] parameters.
This is different from the SHA-1 signatures which Fedora OpenSSL stopped
accepting since Fedora 41.[2]
This commit fixes the following test failures related to the...
Jun Aruga
05:34 PM Bug #21256 (Assigned): `it` value is wrapped in an array when that doesn't happen with numbered parameter
Here is a repro without rspec.
```ruby
class C
define_method(:foo) do
p it
end
end
class D < C
def foo(*args)
super(*args)
end
end
D.new.foo(1)
```
```
$ ./local/bin/ruby --parser=parse.y t.rb
1
...
mame (Yusuke Endoh)
04:42 PM Bug #21256 (Closed): `it` value is wrapped in an array when that doesn't happen with numbered parameter
I have the following script:
```rb
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "rspec-core", "3.13.3"
gem "rspec-expectations", "3.13.3"
end
require "rspec/autorun"
require "rspec/expectat...
Earlopain (Earlopain _)
05:34 PM Misc #20968: `Array#fetch_values` unexpected method name in stack trace
> In any case, it was reaffirmed that matz strongly prefers that `<internal:` not be displayed.
I somewhat agree that showing "internal" makes it look like we're leaking internal implementation details, but then what about this:
...
Dan0042 (Daniel DeLorme)
03:22 AM Misc #20968: `Array#fetch_values` unexpected method name in stack trace
`rake` suppressed these backtrace at https://github.com/ruby/rake/pull/554
I'm +1 to proposal of mame and matz.
hsbt (Hiroshi SHIBATA)
04:52 PM Revision 5aa05f17 (git): Fix lldb debug scripts (#13048)
In ruby/ruby#13008 `RVALUE` was removed without replacement. This means
the lldb scripts that relied on `RVALUE` stopped working.
I updated the ones that were using it just for the bytesize to use
`slot_size` and then round to the neare...
Eileen
04:18 PM Feature #21254: Inlining Class#new
Btw, @ko1 came up with this idea, so I want to say thanks to him. tenderlovemaking (Aaron Patterson)
04:02 PM Feature #21254: Inlining Class#new
Earlopain (Earlopain _) wrote in #note-3:
> > As you can see in the above output, the Class#new frame is eliminated. I'm not sure if anyone really cares about this frame
> ...
Not a dumb question. :)
>
> ...
It doesn't impact this...
tenderlovemaking (Aaron Patterson)
06:58 AM Feature #21254: Inlining Class#new
> As you can see in the above output, the Class#new frame is eliminated. I'm not sure if anyone really cares about this frame
Sorry if this is a dumb question, but wouldn't this also affect warn in general, similar to what you did for...
Earlopain (Earlopain _)
01:37 AM Feature #21254: Inlining Class#new
ko1 (Koichi Sasada) wrote in #note-1:
> `swap` is remained?
I [made a patch to remove `swap`](https://github.com/ruby/ruby/commit/04de973311231ca635c802e992ca1f48366f2e4c) but it makes Coverage tests break. I think we can eliminate ...
tenderlovemaking (Aaron Patterson)
12:45 AM Feature #21254: Inlining Class#new
`swap` is remained? ko1 (Koichi Sasada)
03:15 PM Feature #21221: Proposal to upstream ZJIT
Thank you for you trust Matz!
I think it should be helpful to onboard new people if we have an architecture that is more "standard", more like something you would read about in a compiler textbook. I will talk a bit about that at Ruby...
maximecb (Maxime Chevalier-Boisvert)
07:10 AM Feature #21221: Proposal to upstream ZJIT
I agree with making ZJIT upstream. And I feel no worry about the migration, since I trust the team with merging process.
I don't think it was BBV's fault that there were so few contributions to YJIT from outside Shopify, but I'll leave ...
matz (Yukihiro Matsumoto)
01:00 PM Feature #16993: Sets: from hash keys using Hash#key_set
mame (Yusuke Endoh) wrote in #note-9:
> Given the convention of deriving methods such as `key_set` from `keys`, where the former returns a set instead of an array, one might expect a corresponding derivation like `Kernel#instance_variab...
Dan0042 (Daniel DeLorme)
05:54 AM Feature #16993: Sets: from hash keys using Hash#key_set
Given the convention of deriving methods such as `key_set` from `keys`, where the former returns a set instead of an array, one might expect a corresponding derivation like `Kernel#instance_variable_set` for `Kernel#instance_variables`. ... mame (Yusuke Endoh)
10:43 AM Bug #21255 (Assigned): Can't build Ruby with Windows SDK 10.0.26100
hsbt (Hiroshi SHIBATA)
07:05 AM Bug #21255 (Closed): Can't build Ruby with Windows SDK 10.0.26100
I tried to build ruby.exe with Windows SDK 10.0.26100. But it failed with:
```
dmyext.obj dmyenc.obj
linking shared-library x64-vcruntime140-ruby350.dll
x64-vcruntime140-ruby350.def : error LNK2001: 外部シンボル "Avx2WmemEnabledWeakValue...
hsbt (Hiroshi SHIBATA)
09:23 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
> So I guess I should merge the proposed patch as a precaution?
I think so yes, with that eval code as a test case.
byroot (Jean Boussier)
08:47 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
byroot (Jean Boussier) wrote in #note-7:
> Can source line ever legitimately be `0`?
With `eval`, it can. It can be even negative.
```
$ ruby -e 'eval("p __LINE__", nil, "foo", -10000)'
-10000
```
And when I did this under...
mame (Yusuke Endoh)
08:32 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
@mbcodeandsound Just FYI, I bet you meant to write `!(1..16).cover?(channel)` in the following line.
https://github.com/mike-bourgeous/reproduce-simplecov-ruby34-bug/blob/d73c3fe80014cb91d8b6c64847581feb8a19d1b6/bin/midi_roll.rb#L42...
mame (Yusuke Endoh)
08:28 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
Nice find!
Can source line ever legitimately be `0`? Perhaps we are missing some assertions that would have caught this earlier? And perhaps there are other syntax causing the same issue.
byroot (Jean Boussier)
08:25 AM Bug #21220 (Assigned): Memory corruption in update_line_coverage() [write at index -1]
@byroot Thanks! I think this is an issue of the prism compiler handling the line number around a flip-flop syntax.
test.rb
```
TracePoint.new(:line) do |tp|
p tp
end.enable
load "./target.rb"
```
target.rb
```
if true..true
end
```
...
mame (Yusuke Endoh)
07:50 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
What I've figured for now it that the corruption is triggered by:
```ruby
# This require line makes sure the original script file is processed by simplecov
require File.expand_path($0, '.')
```
```
frame #4: 0x000000010...
byroot (Jean Boussier)
07:43 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
> The issue reproduces on my machine, but it's very rare.
You can make it happen 100% of the time with the following patch:
```diff
diff --git a/thread.c b/thread.c
index 661ee977a9..247fe7237f 100644
--- a/thread.c
+++ b/thre...
byroot (Jean Boussier)
07:41 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
Thanks for the report. The issue reproduces on my machine, but it's very rare. I haven't figured out what happens.
byroot (Jean Boussier) wrote in #note-2:
> If there is no Ruby frame yet (only C frames) you get zero.
That's true,...
mame (Yusuke Endoh)
07:00 AM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
> I do not know if it's normal for rb_sourceline() to return 0
Yes:
```ruby
const char *
rb_sourcefile(void)
{
const rb_execution_context_t *ec = GET_EC();
const rb_control_frame_t *cfp = rb_vm_get_ruby_level_next_...
byroot (Jean Boussier)
07:24 AM Misc #21154: Document or change Module#autoload?
Hi @mame, did you have a chance to watch the video or discuss it in a dev meeting? fxn (Xavier Noria)
06:46 AM Revision b68fe530 (git): Windows 11 24H2 with VS 2019 16.11.45 couldn't handle long name test
```
2) Error:
TestDir#test_children_long_name:
Test::Unit::ProxyError: No such file or directory @ apply2files - C:/Users/hsbt/AppData/Local/Temp/rubytest.zxydnz/d20250408-35424-2b0o6e/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...
hsbt (Hiroshi SHIBATA)
06:46 AM Revision 10d6ee65 (git): Skip some assertions of TestFileExhaustive#test_dirname with Windows platform.
These assertions didn't handle drive letter of Windows
```
1) Failure:
TestFileExhaustive#test_dirname [V:/github.com/ruby/ruby/test/ruby/test_file_exhaustive.rb:1282]:
<"V:/"> expected but was
<"C:/">.
```
hsbt (Hiroshi SHIBATA)
06:00 AM Bug #21104: Net::HTTP connections failing in Ruby >= 3.4.0 on macOS with Happy Eyeballs enabled

>For those experiencing this problem, can you successfully run the following script?
```
➜ ruby-sandbox ruby -v
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin24]
➜ ruby-sandbox cat socket_test.rb
require "soc...
chokkoy (Naoyuki Yamada)
03:12 AM Revision d17ab5a4 (git): [ruby/mmtk] Do root scanning in scan_vm_specific_roots
We rely on scan_vm_specific_roots to reach all stacks via the following
path:
VM -> ractors -> threads -> fibers -> stacks
https://github.com/ruby/mmtk/commit/0a6a835aaa
wks (Kunshan Wang)

04/07/2025

11:56 PM Revision b3b1d7b2 (git): Remove spinlock in dtoa's Balloc, use xmalloc
The spinlock here performs poorly when there are multiple Ractors. The
improvement on single threaded performance doesn't seem that
significant, so I think we should just use malloc.
jhawthorn (John Hawthorn)
11:09 PM Misc #21100: DevMeeting before RubyKaigi 2025
* [Feature #21254] Inline YARV instructions for `Class#new`
* Patch inlines YARV instructions for calls to `new`
* Allocation performance is very good (24% faster, at minimum but reaches 3x depending on parameters)
* Memory usag...
tenderlovemaking (Aaron Patterson)
06:31 PM Misc #21100: DevMeeting before RubyKaigi 2025
* [Feature #21221] Proposal to upstream ZJIT
* The YJIT team has been working on ZJIT, a more advanced Ruby JIT
* We aim for this JIT to be in a usable state in time for 3.5
* We would like to discuss upstreaming it after RubyKa...
maximecb (Maxime Chevalier-Boisvert)
04:37 PM Misc #21100: DevMeeting before RubyKaigi 2025
* [Feature #21216] Implement Set as a core class (jeremyevans0)
* I propose to implement Set as a core class.
* I have a pull request that adds a value-less `st_table` (named `set_table`), for a 33% memory savings.
* Core Set sp...
jeremyevans0 (Jeremy Evans)
11:03 PM Feature #21254 (Closed): Inlining Class#new
We would like to propose inlining YARV bytecode for speeding up object allocations, specifically inlining the `Class#new` method. In order to support inlining this method, we would like to introduce a new YARV instruction `opt_new`. Th... tenderlovemaking (Aaron Patterson)
06:44 PM Feature #21219: `Object#inspect` accept a list of instance variables to display
> could only symbols be used to simplify the syntax further?
Technically possible, but not ideal because of various implementation details (instance variables without a `@` prefix exist internally).
But regardless, it's also not go...
byroot (Jean Boussier)
06:41 PM Feature #21219: `Object#inspect` accept a list of instance variables to display
From an developer ergonomic standoint, could only symbols be used to simplify the syntax further? Example:
``` ruby
# First suggestion.
def inspect = super(:host, :user)

# Third suggestion.
private def inspect_instance_variable...
bkuhlmann (Brooke Kuhlmann)
06:34 PM Feature #21219: `Object#inspect` accept a list of instance variables to display
I'm fine with either of those, with perhaps a slight preference for `private def inspect_instance_variables = [:@a, :@b]`. byroot (Jean Boussier)
06:17 PM Feature #21219: `Object#inspect` accept a list of instance variables to display
I agree with @mame that a keyword argument to `#inspect` is undesirable. `#inspect_instance_variables` is one possible approach. Another possible approach:
```ruby
private def inspect_include_variable?(ivar)
ivar != :@priv_1 ...
jeremyevans0 (Jeremy Evans)
05:37 PM Feature #21219: `Object#inspect` accept a list of instance variables to display
Just FYI, pretty_print already has that mechanism. It allows to control the list of instance variables that should be displayed by defining a method named `pretty_print_instance_variables`.
```ruby
class Foo
def initialize
@p...
mame (Yusuke Endoh)
01:29 PM Feature #21219 (Closed): `Object#inspect` accept a list of instance variables to display
## Context
The default `Object#inspect` implementation is quite useful to have a generic representation of objects in error message and similar places.
However sometimes objects are referencing other objects with a very large `insp...
byroot (Jean Boussier)
06:27 PM Feature #21221 (Closed): Proposal to upstream ZJIT
# Background
For the past 3 months, the YJIT team at Shopify has been working on a next-generation Ruby JIT, which we refer to as ZJIT. This new compiler is currently being developed in a private fork, with the hope that we can event...
maximecb (Maxime Chevalier-Boisvert)
05:33 PM Bug #21220: Memory corruption in update_line_coverage() [write at index -1]
Something like this should prevent the memory corruption, but may be hiding a deeper issue:
``` diff
--- thread.c 2025-02-14 14:25:54.000000000 -0700
+++ thread_fix.c 2025-04-07 11:32:53.571115993 -0600
@@ -5675,7 +5675,7...
mbcodeandsound (Mike Bourgeous)
05:27 PM Bug #21220 (Closed): Memory corruption in update_line_coverage() [write at index -1]
Hello!
I have encountered repeatable memory corruption in Ruby 3.4.2 on Ubuntu 24.04.2 LTS, which I believe is happening in update_line_coverage(). I could not reproduce this on Ruby 3.x or earlier. My findings follow. I also have ...
mbcodeandsound (Mike Bourgeous)
02:43 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
Your patch look really good.
I wonder if it would be possible to do like the `vm->constant_cache` table, have the key be the method name, so that you wouldn't need to clear absolutely everything.
But your patch as-is is already a n...
byroot (Jean Boussier)
02:16 PM Bug #21201: Performance regression when defining methods inside `refine` blocks
byroot (Jean Boussier) wrote in #note-1:
> The solution is likely to keep the list (set) of all existing call caches that belong to a refinement, as to save the object space traversal.
I created a pull request based on this approach....
alpaca-tc (Hiroyuki Ishii)
02:37 PM Revision 4646ab89 (git): Use correct warn method
Kanstantsin Shautsou
02:30 PM Bug #21218 (Rejected): SizedQueue not stopping threads in push even when non_block: false
The `non_block` argument is a positional argument, not a keyword argument, and `{non_block: true}` is considered true (only `nil` and `false` are considered false). You want `sq.push(1, false)` to explicitly set the `non_block` argument ... jeremyevans0 (Jeremy Evans)
11:17 AM Bug #21218 (Rejected): SizedQueue not stopping threads in push even when non_block: false
Use this to recreate
``` ruby
3.1.4 :019 > sq.push(1, non_block: true)
=> #<Thread::SizedQueue:0x00007f39e759af60>
3.1.4 :020 > sq.push(1, non_block: true)
(irb):20:in `push': queue full (ThreadError)
3.1.4 :021 > sq.push(1, non_...
0raghvendrrao (Raghvendra Rao)
01:41 PM Bug #21214 (Closed): VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
Applied in changeset commit:git|d4406f0627c78af31e61f9e07dda9151e109dbc4.
----------
Grow GC heaps independently
[Bug #21214]
If we allocate objects where one heap holds transient objects and another
holds long lived objects, then the...
peterzhu2118 (Peter Zhu)
01:41 PM Revision e3abdfbc (git): Skip test_heaps_grow_independently for MMTk
peterzhu2118 (Peter Zhu)
01:41 PM Revision d4406f06 (git): Grow GC heaps independently
[Bug #21214]
If we allocate objects where one heap holds transient objects and another
holds long lived objects, then the heap with transient objects will grow
along the heap with long lived objects, causing higher memory usage.
For ex...
peterzhu2118 (Peter Zhu)
12:21 PM Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18
ruby_3_3 commit:a67e9e41846cdadad9bb2d9e9d10223c52253898 merged revision(s) commit:3a7b9ca93b91dcc086b9ac8b9957e59268f9493b. nagachika (Tomoyuki Chikanaga)
02:08 AM Bug #21217 (Closed): Integer.sqrt produces wrong results even on input <= 1e18
Applied in changeset commit:git|3a7b9ca93b91dcc086b9ac8b9957e59268f9493b.
----------
Fix `Integer.sqrt` to never exceed actual value
`Integer.sqrt` uses `sqrt(3)` from libm for small values.
This method must return a value less than or...
mame (Yusuke Endoh)
12:19 PM Revision a67e9e41 (git): merge revision(s) 3a7b9ca93b91dcc086b9ac8b9957e59268f9493b: [Backport #21217]
Fix `Integer.sqrt` to never exceed actual value
`Integer.sqrt` uses `sqrt(3)` from libm for small values.
This method must return a value less than or equal to the actual integer
square root, but libm's sqrt does...
nagachika (Tomoyuki Chikanaga)
10:00 AM Revision 432e5fa7 (git): prism_compile.c: Avoid zero length allocation
The constant pool may be empty. byroot (Jean Boussier)
09:30 AM Bug #20255: Embedded arrays aren't moved correctly across ractors
For the record, I went back to a lower level copying code, but made it size pool aware: https://github.com/ruby/ruby/pull/13070 byroot (Jean Boussier)
06:11 AM Revision 135e5bff (git): Update bundled gems list at d485638a08a4561cd2f9c28d29b6d0 [ci skip]
git[bot]
06:10 AM Revision d485638a (git): Allow win32ole test failure
```
D:/a/ruby/ruby/src/gems/src/win32ole/test/win32ole/test_win32ole_event.rb:80:in 'TestWIN32OLE_EVENT_SWbemSink#default_handler': undefined method '+' for nil (NoMethodError)
```
https://github.com/ruby/ruby/actions/runs/14299035797/j...
hsbt (Hiroshi SHIBATA)
06:10 AM Revision f70bf784 (git): Fixed wrong condition to avoid flaky ractor_test.rb
hsbt (Hiroshi SHIBATA)
06:10 AM Revision be5dea97 (git): Rename test command for test-unit
https://github.com/test-unit/test-unit/commit/b7d3c32f6e334e1823e30c053c2268893cf073ef hsbt (Hiroshi SHIBATA)
06:10 AM Revision a4b4dad4 (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)
02:08 AM Revision 3a7b9ca9 (git): Fix `Integer.sqrt` to never exceed actual value
`Integer.sqrt` uses `sqrt(3)` from libm for small values.
This method must return a value less than or equal to the actual integer
square root, but libm's sqrt does not always guarantee that.
This change corrects that by decrementing th...
mame (Yusuke Endoh)

04/06/2025

11:05 AM Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18
mame (Yusuke Endoh) wrote in #note-3:
> https://github.com/ruby/ruby/pull/13076
Thanks for the quick resolution!
hjroh0315 (Matthew Roh)
09:52 AM Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18
https://github.com/ruby/ruby/pull/13076 mame (Yusuke Endoh)
09:20 AM Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18
I was given a reproducible example!
https://x.com/tatyam_prime/status/1908810778276487443
```
irb(main):001> n = 4503599761588224
=> 4503599761588224
irb(main):002> Integer.sqrt(n) ** 2
=> 4503599761588225
```
mame (Yusuke Endoh)
09:13 AM Bug #21217: Integer.sqrt produces wrong results even on input <= 1e18
Thank you. I think it's most likely a Ruby bug, but I can't proceed until I identify the input that causes it.
I still believe Ruby is the cause, but I can't rule out a Python bug. (AtCoder's answer might have been generated with Pyth...
mame (Yusuke Endoh)
05:00 AM Bug #21217 (Closed): Integer.sqrt produces wrong results even on input <= 1e18
Hello, I have been so far using Ruby in various online judge platforms that support it, while recently I discovered a very intriguing issue regarding `Integer.sqrt`.
Please refer to the two following verdicts on this recent problem th...
hjroh0315 (Matthew Roh)
04:43 AM Bug #21027: `not()` receiver should be `nil`
Fixed prism tests with updated snapshots at 5640fea8aada2380145375a7f9eac2b979fe1258. nagachika (Tomoyuki Chikanaga)
02:32 AM Bug #21027: `not()` receiver should be `nil`
ruby_3_3 commit:7c315e23983a35d29108d9ba8c914d6320254d43 merged revision(s) commit:117d6e145a0270ab8fc9134403519ef13b9ebb24. nagachika (Tomoyuki Chikanaga)
04:42 AM Revision 5640fea8 (git): Update prism test snapshots.
This is follow-up for 7c315e23983a35d29108d9ba8c914d6320254d43. nagachika (Tomoyuki Chikanaga)
03:44 AM Feature #21216 (Closed): Implement Set as a core class
I propose to implement Set as a core class. Set has been an autoloaded standard library since Ruby 3.2. The standard library Set is less efficient than it could be, as it uses Hash for storage, which stores unnecessary values for each ... jeremyevans0 (Jeremy Evans)
03:24 AM Revision e2588995 (git): Ensure builtin binaries are aligned to ibf_header
Since IBF result string size should be multiple of 4, this should not
increase the binary size actually.
nobu (Nobuyoshi Nakada)
02:31 AM Revision 7c315e23 (git): merge revision(s) 117d6e145a0270ab8fc9134403519ef13b9ebb24: [Backport #21027]
[ruby/prism] Fix `not` receiver
`not foo` should be `!foo`
`not()` should be `!nil`
Fixes [Bug #21027]
https://github.com/ruby/prism/commit/871ed4b462
nagachika (Tomoyuki Chikanaga)
12:38 AM Revision b5ac483d (git): Fix the if condition to skip test_ractor.rb correctly (#13067)
Follow-up for https://github.com/ruby/ruby/commit/a2b03ba7cb721d698bebee74c535dea4583a9c28 ono-max (Naoto Ono)

04/05/2025

01:31 AM Revision 229784d1 (git): [Bug #21150] macOS: unwinding coroutine workaround is only for arm64
nobu (Nobuyoshi Nakada)

04/04/2025

02:45 PM Bug #21211: Incomplete Backtrace for Socket Errors in Ruby 3.4+
Thanks @byroot, this must be some kind of record from bug report to merged fix. ioquatix (Samuel Williams)
02:26 PM Revision 085cc6e4 (git): Ractor: revert to moving object bytes, but size pool aware
Using `rb_obj_clone` introduce other problems, such as `initialize_*`
callbacks invocation in the context of the parent ractor.
So we can revert back to copy the content of the object slots,
but in a way that is aware of size pools.
byroot (Jean Boussier)
10:34 AM Revision eb765913 (git): Console Cntl event is sent to root process sharing the console
nobu (Nobuyoshi Nakada)
07:24 AM Revision cec45aed (git): Cannot send signal to process group on Windows
nobu (Nobuyoshi Nakada)
07:24 AM Revision d22e7660 (git): Cannot send `SIGTERM` to another process on Windows
nobu (Nobuyoshi Nakada)
05:45 AM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
byroot (Jean Boussier) wrote in #note-2:
> `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.
[......
mood_vuadensl (LOIC VUADENS)
05:23 AM Revision 0251abca (git): Fixed mismatched indentation
hsbt (Hiroshi SHIBATA)
05:21 AM Revision 705a9532 (git): Removed unused variable
hsbt (Hiroshi SHIBATA)
02:58 AM Revision b4a94011 (git): Hardening auto-merge workflow
https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#enabling-automerge-on-a-pull-request hsbt (Hiroshi SHIBATA)
01:22 AM Revision cd8c203f (git): Update bundled gems list at 05e74543f6b0dca882e4324d3577b6 [ci skip]
git[bot]
01:21 AM Revision 05e74543 (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)

04/03/2025

11:54 PM Revision 710bf4a4 (git): [rubygems/rubygems] Rubyinstaller2 fixed this
https://github.com/rubygems/rubygems/commit/08b3c48f41 deivid (David Rodríguez)
11:54 PM Revision f8c02259 (git): [rubygems/rubygems] Improve bug report instructions
* Explicitly recommend copying full command output and not just the bug
report template part.
* Include quadruple quotes in the "What actually happened section" and
tell users to copy full command output inside. Hopefully quadruple
...
deivid (David Rodríguez)
10:38 PM Revision 647e1ff9 (git): Use EnvUtil.apply_timeout_scale
hsbt (Hiroshi SHIBATA)
10:38 PM Revision fa95d1b0 (git): Extend open_timeout for test failure on s390x
https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz hsbt (Hiroshi SHIBATA)
10:38 PM Revision a1679f0d (git): Use EnvUtil.apply_timeout_scale
hsbt (Hiroshi SHIBATA)
10:38 PM Revision f2ee22f3 (git): Extend open_timeout for test failure on s390x
https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz hsbt (Hiroshi SHIBATA)
10:32 PM Revision bbf5f123 (git): Use EnvUtil.apply_timeout_scale
hsbt (Hiroshi SHIBATA)
10:32 PM Revision 4d6143dd (git): Extend open_timeout for test failure on s390x
https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz hsbt (Hiroshi SHIBATA)
09:13 PM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
I have a fix here: https://github.com/ruby/ruby/pull/13061 peterzhu2118 (Peter Zhu)
05:58 AM Bug #21214: VmRSS consumption increase in Ruby 3.4.2 vs Ruby 3.3.6
byroot (Jean Boussier) wrote in #note-2:
> `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.
> .....
mood_vuadensl (LOIC VUADENS)
05:58 PM Revision 6b5e187d (git): [ruby/openssl] pkcs7: fix test failure on RHEL 9
The test case test_split_content fails on RHEL 9 and Fedora 41 because
their OpenSSL packages do not accept SHA-1 signatures. This was only
caught after commit https://github.com/ruby/openssl/commit/69fd7f886313 added the missing asserti...
rhenium (Kazuki Yamaguchi)
05:58 PM Revision 3911113b (git): [ruby/openssl] pkcs7: update test case test_graceful_parsing_failure
Using test_pkcs7.rb as an example invalid input is not reliable because
we may happen to include a valid PKCS#7 PEM block in a heredoc.
https://github.com/ruby/openssl/commit/76fead26d2
rhenium (Kazuki Yamaguchi)
05:39 PM Revision 137b51e4 (git): Remove rb_gc_start from cancel_single_ractor_mode
In 307732ccee7f9f28f8422bab2f839da021d8cdec Ractors were changed to
explicitly run GC when the first non-main one was activated in order to
disable the transient heap. Theap no longer exists so I don't think we
need to do this.
John Hawthorn
05:39 PM Revision 5eb3efcf (git): Fix timeline_value not being marked in test
T_DATA with a NULL pointer are not marked. Let's wrap 1 instead to
ensure that our mark function is actually run.
jhawthorn (John Hawthorn)
02:57 PM Revision 4aa74b60 (git): compile.c: avoid allocating 0 length call_data
if `body->ci_size` is `0`, there's no point allocating 0B,
it just wastes an entry in the allocator.
byroot (Jean Boussier)
11:38 AM Feature #14565: Simpler, one-liner, failsafe require in ruby? [Suggested names: require_failsafe, require_safe, require_try, require_add)
I like `require "rubocop-rspec", optional: true` idea from https://bugs.ruby-lang.org/issues/20714.
I wonder if a `nil` return value for `require ..., optional: true` when the feature was not available would make sense, and would enab...
deivid (David Rodríguez)
03:11 AM Feature #14565: Simpler, one-liner, failsafe require in ruby? [Suggested names: require_failsafe, require_safe, require_try, require_add)
jeromedalbert (Jerome Dalbert) wrote in #note-4:
> I like this feature request, a non-failing require would be great for gems that optionally depend on another gem.
> ...
Unfortunately, that `if` will not work, because:
```ruby
p r...
austin (Austin Ziegler)
11:03 AM Revision fab133e6 (git): Use EnvUtil.apply_timeout_scale
hsbt (Hiroshi SHIBATA)
11:03 AM Revision 3f152ce7 (git): Extend open_timeout for test failure on s390x
https://rubyci.s3.amazonaws.com/s390x/ruby-master/log/20250403T060004Z.fail.html.gz hsbt (Hiroshi SHIBATA)
10:41 AM Revision 7065e603 (git): Use IPv4 for test server because TestNetHTTPS is failing with s390x
https://rubyci.s3.amazonaws.com/s390x/ruby-3.2/log/20250403T005659Z.fail.html.gz hsbt (Hiroshi SHIBATA)
10:36 AM Revision b79909fc (git): Followed up 7c400c66c9
hsbt (Hiroshi SHIBATA)
07:56 AM Revision 1dddc6c7 (git): Remove no longer used union
IMEMO_NEW takes just one memo value, min/max argc are assigned
directly and packed argc is not used.
nobu (Nobuyoshi Nakada)
06:39 AM Bug #20255: Embedded arrays aren't moved correctly across ractors
No offense taken. byroot (Jean Boussier)
05:44 AM Revision 7c400c66 (git): Use IPv4 for test server because TestNetHTTPS is failing with s390x
https://rubyci.s3.amazonaws.com/s390x/ruby-3.2/log/20250403T005659Z.fail.html.gz hsbt (Hiroshi SHIBATA)
05:10 AM Revision c48219e2 (git): f7059af50a31 is also required at ractor_core.h
hsbt (Hiroshi SHIBATA)
05:10 AM Revision 105d9da2 (git): Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml via vcpkg
hsbt (Hiroshi SHIBATA)
04:45 AM Revision 34e990fc (git): Picking test fix from https://github.com/ruby/ruby/commit/3d8a66568e8106b367665d716e0d3c8c8208aa07
The original change is https://github.com/ruby/ruby/commit/d78ff6a767ca813ac5fa178dd7611f20a993c191 hsbt (Hiroshi SHIBATA)
04:13 AM Revision aa5d760f (git): Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml via vcpkg
hsbt (Hiroshi SHIBATA)
03:54 AM Revision 31c295ef (git): Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml via vcpkg
hsbt (Hiroshi SHIBATA)
03:37 AM Bug #21215 (Closed): IRB upto yield self when self is little then end_val
mame (Yusuke Endoh)
02:33 AM Bug #21215 (Closed): IRB upto yield self when self is little then end_val
irb(main):001:0> 1.upto(0) { |k| p k } => 1
1
irb(main):002:0> 0.downto(1) { |k| p k } => 0
0
Save these statements to script and run the script, no output.
======
Sorry, It is not a bug, Just the IRB Echo of return value o...
fitmap (Justin Peal)
02:31 AM Revision 29dafa5f (git): Fix assertion failure with anonymous splats
When calling a method that accepts an anonymous splat and literal
keywords without any arguments, an assertion failure was previously
raised. Set rest_index to 0 when setting rest to the frozen hash,
so the args_argc calculation is accur...
jeremyevans (Jeremy Evans)
01:14 AM Revision b8e2bec9 (git): Grammar fix in doc/exceptions.md: there => they're
herwin (Herwin W)
01:12 AM Revision 1598a2ca (git): Enforce to use CMake 3 because CMake 4 is not compatible to build libyaml via vcpkg
hsbt (Hiroshi SHIBATA)
 

Also available in: Atom