Project

General

Profile

Activity

From 02/03/2025 to 02/09/2025

02/09/2025

10:11 PM Revision 5232c86f (git): Use the default MMTk plan
The default MMTk plan is no longer MarkSweep, so we shouldn't force it
to be MarkSweep.
peterzhu2118 (Peter Zhu)
10:11 PM Revision 5fcbf3e8 (git): Remove MMTk configuration for debug builds
We are no longer running debug builds of MMTk here, so we don't need this
configuration anymore.
peterzhu2118 (Peter Zhu)
07:33 PM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
> I'm not sure if this one is possible. If some Ractor is updating the hash, it could be in an inconsistent state when another Ractor is trying to read.
A RW-lock doesn't allow reads while the write lock is held.
> ...
That's an i...
byroot (Jean Boussier)
07:30 PM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
byroot (Jean Boussier) wrote in #note-16:
> I profiled this repro out of curiosity, and ractors spend 32% of their time waiting for the VM lock (`vm_lock_enter` + the unlock) to be able to lookup in the `fstring` table: https://share.fi...
tenderlovemaking (Aaron Patterson)
09:15 AM Bug #19288: Ractor JSON parsing significantly slower than linear parsing
I profiled this repro out of curiosity, and ractors spend 32% of their time waiting for the VM lock (`vm_lock_enter` + the unlock) to be able to lookup in the `fstring` table: https://share.firefox.dev/4152X8a
Currently this is done e...
byroot (Jean Boussier)
06:40 PM Feature #21126: Drop default_proc when Hash#freeze is called for better Ractor support
I was about to write the same thing as @jeremyevans0, the `default_proc` doesn't necessarily mutate the hash, hence dropping it on freeze isn't correct. byroot (Jean Boussier)
06:37 PM Feature #21126: Drop default_proc when Hash#freeze is called for better Ractor support
I think this is a bad idea. It makes `freeze` change the hash in a non-backwards compatible way.
For `Hash#default`, I think it makes no sense at all:
```ruby
h = Hash.new(0)
h[1] # 0
h.freeze
h[1] # Before: 0, After: nil
```...
jeremyevans0 (Jeremy Evans)
09:08 AM Feature #21126 (Rejected): Drop default_proc when Hash#freeze is called for better Ractor support
Hash instances with default_proc set cannot be sent/moved across Ractors, even if they are frozen.
Consider the following code. Using a default proc to set an empty Array is a very common pattern, even introduced in the docs.
```ru...
osyoyu (Daisuke Aritomo)
10:26 AM Revision 7d10c22a (git): [ruby/openssl] Revert "Skip a new test when old OpenSSL"
This reverts commit https://github.com/ruby/openssl/commit/8c96a69b0d47.
This is no longer necessary since we do not support OpenSSL 1.1.0
anymore.
https://github.com/ruby/openssl/commit/4987688cb4
rhenium (Kazuki Yamaguchi)
10:26 AM Revision 581dbcec (git): [ruby/openssl] ssl: prefer SSLContext#max_version= in tests
Avoid using the deprecated OpenSSL::SSL::SSLContext#ssl_version= outside
the tests specifically written for it.
https://github.com/ruby/openssl/commit/93a564dec2
rhenium (Kazuki Yamaguchi)
10:26 AM Revision 64a98dec (git): [ruby/openssl] ssl: fix misuse of assert_handshake_error in tests
assert_handshake_error is useful for checking handshake failures
triggered by the peer, as the underlying socket may be closed
prematurely, leading to different exceptions depending on the platform
and timing.
However, when the local en...
rhenium (Kazuki Yamaguchi)
10:26 AM Revision 5791c93f (git): [ruby/openssl] ssl: refactor test case test_verify_mode_server_cert
Minimize the amount of code inside the assert_raise block to avoid
accidentally catching a wrong exception.
https://github.com/ruby/openssl/commit/5089b2d311
rhenium (Kazuki Yamaguchi)
10:26 AM Revision a8b36314 (git): [ruby/openssl] ssl: fix test case test_npn_advertised_protocol_too_long
The list of NPN protocols is validated in SSLContext#setup.
The assert_handshake_error is misleading. The client is unable to start
a handshake at all because the server is not running.
https://github.com/ruby/openssl/commit/e8db6ffd9e
rhenium (Kazuki Yamaguchi)
10:26 AM Revision 1f4fc2e6 (git): [ruby/openssl] ssl: remove start_server_version from tests
Use start_server instead of start_server_version.
start_server_version is a wrapper around start_server that forces the
server to a specific protocol version using the now-deprecated method
SSLSocket#ssl_version=, but it does more than ...
rhenium (Kazuki Yamaguchi)
10:26 AM Revision 237c71fc (git): [ruby/openssl] ssl: remove start_immediately kwarg from test helper start_server
The keyword argument is no longer used by any test cases.
https://github.com/ruby/openssl/commit/2f31605d47
rhenium (Kazuki Yamaguchi)
09:15 AM Misc #21110: Should Marshal.dump always use object links for repeated Float values?
nobu (Nobuyoshi Nakada) wrote in #note-3:
> At least, `Float` should be distinguished only by its value, not its object ID
Bigint has similar behaviour:
``` ruby
Marshal.dump([2**64, 2**64]) #=> "\x04\b[\al+\n\x00\x00\x00\x00\x00\x...
herwin (Herwin W)
08:49 AM Bug #21123 (Rejected): instance_exec with curried proc
I agree with @mame this isn't a bug, and by design.
And I don't see how it could reasonably be changed without breaking lots of code.
byroot (Jean Boussier)
08:48 AM Bug #21124: Enumerable#find called without a block returns Enumerator without size
I really don't understand what the "size" of the Enumerator returned by `find` means, but I guess it returns `nil`, which means "unknown size", because the number of calls depends on the return value of the block.
```ruby
i = 0; [1, ...
mame (Yusuke Endoh)
02:45 AM Bug #21125: Kernel is called first
The reason this works in Ruby 3.3 and below is that `system` is a private method and not a public method, and calls to private methods where the receiver is not `self` call `method_missing`. `raw.system` is a method call where the recei... jeremyevans0 (Jeremy Evans)
02:34 AM Bug #21125: Kernel is called first
jeremyevans0 (Jeremy Evans) wrote in #note-3:
> mikik0 (Hashino Mikiko) wrote in #note-2:
> ...
Sorry, that was me testing the wrong version. The behavior is the same between prism and parse.y, so this is a difference in behavior betw...
jeremyevans0 (Jeremy Evans)
02:32 AM Bug #21125 (Open): Kernel is called first
mikik0 (Hashino Mikiko) wrote in #note-2:
> @jeremyevans0 san
> ...
You are correct. It also works on Ruby 3.4 when using `--parser=parse.y`, so this appears to be related to prism. I'll have to do more analysis to determine which be...
jeremyevans0 (Jeremy Evans)
02:21 AM Bug #21125: Kernel is called first
@jeremyevans0 san
It works with Ruby 3.3 series, but not from Ruby 3.4. Is it a specification?
mikik0 (Hashino Mikiko)
02:01 AM Bug #21125 (Rejected): Kernel is called first
This isn't a bug. If you want `method_missing` to be called instead of a method in Kernel, you need to undefine the existing method:
```ruby
class ObjectifiedHash
undef_method :system
# rest of your example
```
You could...
jeremyevans0 (Jeremy Evans)
01:43 AM Bug #21125 (Closed): Kernel is called first
Kernel#system is being called when there is a column or method name named system.
The other methods of Kernel reproduce the problem.
Ex.Rand returns a random value, and exit terminates the program.
This problem did not occur until R...
mikik0 (Hashino Mikiko)

02/08/2025

10:13 PM Bug #21124 (Rejected): Enumerable#find called without a block returns Enumerator without size
When a collection's size is known then enumerator that iterates it usually has size (that's `#size` returns a collection size).
But an enumerator returned by `Enumerable#find` called without a block doesn't have size:
```ruby
[1, ...
andrykonchin (Andrew Konchin)
03:44 PM Bug #21123: instance_exec with curried proc
Hi @mame san,
Thanks for your explanation and I understood the reason of this behavior.
I have no reasonable thought but I think it would be nice that curried blocks are able to be executed by `#instance_exec`.
taichi730 (Taichi Ishitani)
01:36 PM Bug #21117: Inconsistent behaviour between "_1" and "it" variables
Prism and parse.y parses these two code in the example differently.
~~~ruby
[1, 2, 3].each { it = it + 1; p it }
[1, 2, 3].each { it += 1; p it }
~~~
I think `it` was designed not to break old code that uses local variable `it`,...
tompng (tomoya ishida)
09:29 AM Misc #21019: DevMeeting-2025-02-13
* [Bug #21102] Unexpected encoding when concatenating ASCII string with ASCII compatible string (toy)
* Should `ascii_string + utf8_string` return an ASCII or UTF-8 string when both have 7bit coderange?
byroot (Jean Boussier)
06:59 AM Revision b4865b14 (git): Update bundled gems list as of 2025-02-07
git[bot]

02/07/2025

11:22 PM Bug #20919: IO#seek and IO#pos= do not clear the character buffer in some cases while transcoding
I have a draft of a fix for this one https://github.com/ruby/ruby/pull/12714 mjrzasa (Maciek Rząsa)
09:21 PM Bug #21123: instance_exec with curried proc
I believe this behavior is by design.
`Proc#curry` returns a wrapper Proc that calls to a given Proc. In other words, your code is essentially the same as the following code.
```ruby
a = Object.new
def a.foo(n)
p
end
b = p...
mame (Yusuke Endoh)
02:54 PM Bug #21123 (Rejected): instance_exec with curried proc
I have a question about behavior of `#instance_exec` with a curried proc.
When running `#instance_exex` with a curried proc, it appears that the given proc is executed on the context where it is created but not the receiver object.
...
taichi730 (Taichi Ishitani)
08:47 PM Feature #21121: Ractor channels
I think adding a channel object would be very helpful. I'm looking through shared data structures in Rails, trying to understand what we need to change for Ractor safety. One popular data structure is a Concurrent::Map, and there are v... tenderlovemaking (Aaron Patterson)
08:44 PM Revision e12f5259 (git): Add timeout to compilers workflow
The default timeout on GitHub Actions is 360 minutes, the job usually takes
around 20 to 30 minutes to complete. This commit sets the timeout to be
40 minutes so jobs that hang will timeout faster.
peterzhu2118 (Peter Zhu)
08:14 PM Bug #21122 (Closed): library/socket/basicsocket/recv_nonblock_spec.rb fails with IO::EAGAINWaitReadable sometimes.
Eregon (Benoit Daloze)
01:41 PM Bug #21122: library/socket/basicsocket/recv_nonblock_spec.rb fails with IO::EAGAINWaitReadable sometimes.
Oh, my bad.
Fixed in https://github.com/ruby/ruby/pull/12710.
andrykonchin (Andrew Konchin)
08:30 AM Bug #21122 (Closed): library/socket/basicsocket/recv_nonblock_spec.rb fails with IO::EAGAINWaitReadable sometimes.
After https://github.com/ruby/ruby/commit/d7a5ad2a21f7d2c45e3fea674ff077bb0e2cadae, I got test failure with `library/socket/basicsocket/recv_nonblock_spec.rb` sometimes.
* https://github.com/ruby/ruby/actions/runs/13108171270/job/3656...
hsbt (Hiroshi SHIBATA)
08:13 PM Revision 5454188f (git): Retry on IO::EAGAINWaitReadable when a closed socket is still not available for reading
andrykonchin (Andrew Konchin)
09:40 AM Revision 71785935 (git): Simplified to find gemspecs for bundled gems (#12709)
* Simplified to find gemspecs for bundled gems
Co-authored-by: Nobuyoshi Nakada <nobu.nakada@gmail.com>
hsbt (Hiroshi SHIBATA)
07:00 AM Revision 8dbbc79e (git): Update bundled gems list as of 2025-02-06
git[bot]
03:09 AM Bug #21117: Inconsistent behaviour between "_1" and "it" variables
> I believe variables `_1` and `it` should have consistent behaviour
Assignments to `it` are currently allowed for compatibility considerations, but I believe they may be prohibited in the future.
BTW, `_1` and `it` are different. `_...
mame (Yusuke Endoh)
02:47 AM Revision e776efdc (git): Support `git ls-files ...`.split style for file list of gemspec
hsbt (Hiroshi SHIBATA)

02/06/2025

11:49 PM Revision 2ed1962c (git): [CI] add CI matrix for clang-21
see also https://github.com/llvm/llvm-project/pull/124870 shyouhei (Shyouhei Urabe)
11:15 PM Feature #21121 (Closed): Ractor channels
# Motivation:
It would be nice be able to `Ractor.yield` in a non-blocking way. Right now a `Ractor.yield` blocks until another ractor calls `r.take` on the yielding ractor.
This is bad in the following scenario:
```ruby
main = R...
luke-gru (Luke Gruber)
09:03 PM Bug #21115: Etc.getgrgid is not Ractor-safe but is marked as such
I think having a mutex per unsafe C extension (that you want to make safe) to lock around those library calls would be a good idea. The alternative would
be confusing to users imo, the ractor safety would be system dependant (OS version ...
luke-gru (Luke Gruber)
10:22 AM Bug #21115: Etc.getgrgid is not Ractor-safe but is marked as such
nobu (Nobuyoshi Nakada) wrote in #note-2:
> MT-Safe variants such as `getgrgid_r` may be available, but we don't provide per-method ractor-safe declaration API, for now.
I think it's possible, like:
```c
void Init_foo() {
rb_ext_rac...
Eregon (Benoit Daloze)
03:05 AM Bug #21115: Etc.getgrgid is not Ractor-safe but is marked as such
MT-Safe variants such as `getgrgid_r` may be available, but we don't provide per-method ractor-safe declaration API, for now.
Also `ractor_unsafe_check()` is not exposed.
nobu (Nobuyoshi Nakada)
08:48 PM Bug #21119: Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly.
Yeah sorry it is the GVL, like you guys are saying. There are many syscalls here, it would be nice to just release it at the top and get it back after all the syscalls, but then
there's probably a lot of ruby functions in between the sy...
luke-gru (Luke Gruber)
08:17 PM Bug #21119: Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly.
I don't think we should revert the GVL freeing, but we should really start to think about a smarter scheduler that don't penalize threads that release the GVL. It's a longer project though. byroot (Jean Boussier)
07:25 PM Bug #21119: Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly.
It is simple to revert the GVL-releasing, but then no other thread can run while accessing the filesystem (which may block for a long period of time for networked filesystems). GVL-releasing is a tradeoff. It mitigates damage if the fi... jeremyevans0 (Jeremy Evans)
07:11 PM Bug #21119: Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly.
This might be an issue with Kernel#loop being defined now in Ruby itself, and it never calls a primitive to check interrupts. Checking interrupts and having a timer interrupt would switch threads. You can mimic this by calling `Thread.pa... luke-gru (Luke Gruber)
03:50 PM Bug #21119 (Open): Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly.
Executing the following code in Ruby 3.4.1 takes a very long time, especially when there are many files \(100~\) in the current directory.
This delay does not occur in Ruby 3.3.6.
## Reproducible script
```ruby
# hoge.rb
# Lau...
genya0407 (Yusuke Sangenya)
08:14 PM Bug #21118 (Closed): Calling defined?(it) segfaults
Closing as the other bug is marked as backport for 3.4 already. byroot (Jean Boussier)
07:44 PM Bug #21118: Calling defined?(it) segfaults
It looks like this was fixed in https://github.com/ruby/ruby/pull/12584 so this is working fine on `master`. ufuk (Ufuk Kayserilioglu)
03:36 PM Bug #21118 (Closed): Calling defined?(it) segfaults
```
$ ruby -e '[1, 2, 3].each { p defined?(it) }'
-e: [BUG] Unsupported node PM_IT_LOCAL_VARIABLE_READ_NODE
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin24]
-- Crash Report log information -----------------------...
radarek (Radosław Bułat)
05:38 PM Bug #21120 (Closed): Segmentation fault when running Rails with MN threads enabled on 3.4.1
The error can be replicated by checking out the following branch: https://github.com/p8/FrameworkBenchmarks/tree/rails/enable-MN-threads
and running:
```bash
./tfb --test rails --mode verify
```
The following error is raised:
...
p8 (Petrik de Heus)
03:32 PM Bug #21117 (Closed): Inconsistent behaviour between "_1" and "it" variables
I believe variables `_1` and `it` should have consistent behaviour and the same as normal local variables. Here are inconsistencies:
```ruby
# 1. Assigning new value
[1, 2, 3].each { |v| v = v + 1; p v } # works as expected
[1, 2, ...
radarek (Radosław Bułat)
03:01 PM Feature #21084: Declare objects have weak references
Ah yes, I forgot to link the PR: https://github.com/ruby/ruby/pull/12606 peterzhu2118 (Peter Zhu)
12:49 PM Feature #21084: Declare objects have weak references
Is there a PR already? I don't see the link in the description. Eregon (Benoit Daloze)
02:12 PM Revision 9baa0f8c (git): Enable bundled gems in ruby-runner
nobu (Nobuyoshi Nakada)
02:10 PM Revision adbf9c5b (git): [ruby/openssl] test_ssl.rb: Test respecting system default min.
https://github.com/ruby/openssl/commit/7de5ff583a Jun Aruga
12:06 PM Misc #21019: DevMeeting-2025-02-13
* [Feature #21116] Extract RJIT as a third-party gem (k0kubun)
* Are we okay with removing RJIT (`--rjit`) from the Ruby core?
k0kubun (Takashi Kokubun)
11:55 AM Feature #21116 (Closed): Extract RJIT as a third-party gem
## Proposal
* Extract the implementation of `RJIT::C` to ruby/rjit and publish it as a thirt-party gem `rjit`
* Allow `jit_exec()` to call `body->jit_entry` even when `--yjit` is not given
* Remove RJIT from the Ruby core
* Remov...
k0kubun (Takashi Kokubun)
09:22 AM Feature #20309 (Closed): Bundled gems for Ruby 3.5
I migrated all of target gems to bundled gems in master branch.
@k0kubun
FYI: I added workaround to load fiddle from bundled gems at rjit.rb now.
https://github.com/ruby/ruby/blob/master/rjit.rb#L33
This workaround should be...
hsbt (Hiroshi SHIBATA)
07:44 AM Revision ec8e3e37 (git): Only modified LOAD_PATH for RJIT with fiddle provided by bundled gems
hsbt (Hiroshi SHIBATA)
07:02 AM Revision b4bfbcad (git): Optimize Symbol generation in strict mode
Co-authored-by: Jean Boussier <jean.boussier@gmail.com> etienne (Étienne Barrié)
07:02 AM Revision f865148e (git): Fix JSON::Coder to call as_json proc for NaN and Infinity
Co-authored-by: Jean Boussier <jean.boussier@gmail.com> etienne (Étienne Barrié)
06:58 AM Revision dd1fe03b (git): [rubygems/rubygems] Add `irb` to a Gemfile for a newly created gem
I think we need this to silence the following warning when running
`bin/console` with Ruby 3.4
```
./bin/console:10: warning: irb was loaded from the standard library, but will no longer be part of the default gems starting from Ruby 3....
y-yagi (Yuji Yaginuma)
06:58 AM Revision ac093f43 (git): [rubygems/rubygems] Auto-heal empty installation directory
https://github.com/rubygems/rubygems/commit/9720a9b980 deivid (David Rodríguez)
06:57 AM Revision 78ef59ac (git): [rubygems/rubygems] Refine messages about gem installations being missing
The previous wording was too specific, there may be situations when the
gem has actually never installed (so never deleted either).
https://github.com/rubygems/rubygems/commit/e4a0d71fbe
deivid (David Rodríguez)
06:57 AM Revision 385dc5dc (git): [rubygems/rubygems] Don't potentially load remote metadata when expanding dependencies
For installed specifications, we can ignore any constraints they may
have, since we know they match the current version of Ruby or otherwise
would not be installed.
For remote specifications, we already resolve optimistically without
me...
deivid (David Rodríguez)
06:57 AM Revision a1716e23 (git): [rubygems/rubygems] Move expanding dependencies with metadata to specification classes
https://github.com/rubygems/rubygems/commit/7f921aa46e deivid (David Rodríguez)
06:57 AM Revision 24f5e301 (git): [rubygems/rubygems] Metadata dependencies can be `Gem::Dependency` instances
They use less memory that way.
When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:
### Before
Total allocated: 265.06 MB (3186053 objects)
Total retained: 116.98 MB (1302280 o...
deivid (David Rodríguez)
06:57 AM Revision 7fed6c88 (git): [rubygems/rubygems] Remove unnecessary remapping of dependencies
Sometimes we'll resolve using bare `Gem::Dependency` instances rather
than `Bundler::Dependency` instances, which is fine, simpler, and saves
some memory.
When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, ...
deivid (David Rodríguez)
06:57 AM Revision 4c0cf2de (git): [rubygems/rubygems] Make `Bundler::Dependency` more memory efficient
When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:
### Before
Total allocated: 288.21 MB (3498515 objects)
Total retained: 119.10 MB (1357976 objects)
### After
Total alloca...
deivid (David Rodríguez)
06:57 AM Revision 8e788301 (git): [rubygems/rubygems] Lazily parse dependencies in EndpointSpecification
Since not every dependency gets referenced.
When resolving from scratch a Gemfile including only `"gem "rails", "~>
8.0.1"`, I get the following results:
### Before
Total allocated: 295.01 MB (3624335 objects)
Total retained: 119.31 ...
deivid (David Rodríguez)
04:07 AM Revision c8337067 (git): Improve bundled gems warning messages
Currently evenn if the require actually fails, they suggest that the
file was actually loaded, which is confusing. I reworded them to reduce
this confusion.
deivid (David Rodríguez)
04:07 AM Revision 03a0c4e0 (git): Rename "gem" to "name"
The name "gem" could be confused with RubyGems activation method. deivid (David Rodríguez)
04:07 AM Revision 433f4e30 (git): Simplify bundled gems warnings implementation
Most of the stuff is not actually necessary. deivid (David Rodríguez)
04:07 AM Revision 68bb6cee (git): Remove unnecessary SINCE_FAST_PATH constant
If anything, I think this may be causing some false positives. deivid (David Rodríguez)
12:49 AM Revision da75893d (git): Bump up actions/upload-artifact-4.4.1
hsbt (Hiroshi SHIBATA)
12:49 AM Revision 15b77a09 (git): [DOC] ractor.md: Remove link to Complex class
Daisuke Aritomo

02/05/2025

11:57 PM Revision 6ca8bc85 (git): Launchable: Fix broken links by passing GITHUB_SERVER_URL (#12704)
@peterzhu2118 mentioned that "View workflow run" button is broken in Launchable. It's because invalid URL is sent from compilers/actions.yaml. Launchable CLI builds URL based on the environment variables. In those variables, GITHUB_SERVE... ono-max (Naoto Ono)
10:09 PM Bug #20919: IO#seek and IO#pos= do not clear the character buffer in some cases while transcoding
I rerun tests on 3.5.0 and it's indeed related to transcoding
```
puts "Hello dev-ruby! #{RUBY_VERSION}"
require 'tempfile'
Tempfile.open() do |f|
f.write('0123456789')
f.rewind
f.ungetc('a')
# Character buffer WILL NOT...
mjrzasa (Maciek Rząsa)
09:19 PM Bug #20919: IO#seek and IO#pos= do not clear the character buffer in some cases while transcoding
It works OK with StringIO (unsurprisingly)
```
StringIO.open() do |f|
f.write('0123456789')
f.rewind
f.ungetc('a')
# Character buffer WILL NOT be cleared
f.seek(2)
f.getc
end
# => "1"
```
mjrzasa (Maciek Rząsa)
02:56 PM Bug #20919: IO#seek and IO#pos= do not clear the character buffer in some cases while transcoding
I've reproduced it without transcoding:
```ruby
Tempfile.open() do |f|
f.write('0123456789')
f.rewind
f.ungetc('a')
# Character buffer WILL NOT be cleared
f.seek(2, :SET)
f.getc # => 'a'
end
# => 'a'
```
mjrzasa (Maciek Rząsa)
04:05 PM Bug #21115: Etc.getgrgid is not Ractor-safe but is marked as such
I think most methods of Etc have the same problem, so it's probably best to mark none of them as thread-safe, or only some known as thread-safe and frequently-used like `Etc.nprocessor` and `Etc.uname` (but should still be reviewed if th... Eregon (Benoit Daloze)
04:00 PM Bug #21115 (Closed): Etc.getgrgid is not Ractor-safe but is marked as such
```ruby
require 'etc'
20.times.map do
Ractor.new do
1000.times do
raise unless Etc.getgrgid(Process.gid).gid == Process.gid
end
end
end.each(&:take)
```
(inspired from https://github.com/ruby/spec/blob/658b5...
Eregon (Benoit Daloze)
11:24 AM Bug #21114 (Closed): Prism hangs up while parsing deeply nested `def`
~~~ruby
Prism.parse "def f\n" * 500 # Ruby 3.4
Prism.parse "def f\n" * 5000 # Ruby 3.5
Prism.parse "def initialize: ()->void\n" * 250 # Ruby 3.4
Prism.parse "def initialize: ()->void\n" * 2500 # Ruby 3.5
#=> hang up, Ctrl-C doesn't ...
tompng (tomoya ishida)
11:17 AM Misc #21110: Should Marshal.dump always use object links for repeated Float values?
https://github.com/ruby/ruby/pull/12703 nobu (Nobuyoshi Nakada)
08:15 AM Revision 141f2924 (git): The test of net-smtp-0.5.1 is working with Windows platform now
hsbt (Hiroshi SHIBATA)
06:20 AM Revision 7796db24 (git): Update bundled gems list at ae026ff65b85cd4ebea891825e9ced [ci skip]
git[bot]
06:19 AM Revision ae026ff6 (git): Update bundled_gems
hsbt (Hiroshi SHIBATA)
05:55 AM Bug #21113 (Closed): net-smtp.gemspec is broken at Ruby 3.3/3.4
This issue is fixed at https://github.com/ruby/net-smtp/releases/tag/v0.5.1
I prepared to backport for Ruby 3.3 and 3.4
* https://github.com/ruby/ruby/pull/12698
* https://github.com/ruby/ruby/pull/12699
hsbt (Hiroshi SHIBATA)
05:46 AM Bug #21113 (Closed): net-smtp.gemspec is broken at Ruby 3.3/3.4
The bundled `net-smtp-0.4.0.1` at Ruby 3.3 and `net-smtp-0.5.0` at Ruby 3.4 are broken.
```
❯ diff -u 3.2.7/lib/ruby/gems/3.2.0/specifications/net-smtp-0.3.4.gemspec 3.3.7/lib/ruby/gems/3.3.0/specifications/net-smtp-0.4.0.1.gemspec
...
hsbt (Hiroshi SHIBATA)
03:48 AM Revision c204cf7c (git): [rubygems/rubygems] Deprecate `CurrentRuby#maglev?` and other related maglev methods:
- Follow up to https://github.com/rubygems/rubygems/pull/8430#discussion_r1927239555.
The maglev platform was not supported by Bundler, so calling
`gem "foo", platforms: ["maglev"]` would raise an error.
The helpers added in the ...
Edouard CHIN
02:37 AM Revision afb47a1f (git): Bump capstone from 0.12.0 to 0.13.0 in /yjit
Bumps [capstone](https://github.com/capstone-rust/capstone-rs) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/capstone-rust/capstone-rs/releases)
- [Changelog](https://github.com/capstone-rust/capstone-rs/blob/master/CHANGEL...
dependabot[bot]
02:05 AM Revision 50e48a20 (git): Generate the latest version number from OpenSSL LTS releases
hsbt (Hiroshi SHIBATA)
01:37 AM Revision 920d1555 (git): Update default gems list at 425a93fb1bb9a3059fab5527d4ab31 [ci skip]
git[bot]
01:36 AM Revision 425a93fb (git): Removed unused parameters for building docker image
hsbt (Hiroshi SHIBATA)

02/04/2025

10:37 PM Revision ec5ac156 (git): Update bundled gems list at 4b5bcba2e28b367f851bd21fbcd828 [ci skip]
git[bot]
10:36 PM Revision 4b5bcba2 (git): Integrate read_s and read_s_expand with get_item_property for Win32::Registry
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 333bc26d (git): Added get_item_property and use it for Win32::Registry and Get-ItemProperty
hsbt (Hiroshi SHIBATA)
10:36 PM Revision a487698c (git): Use powershell for retrieving value from registry if fiddle is not available
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 078e723b (git): Don't use nested registry open for rewriting powershell version
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 02a9c05e (git): Handle failing case to load win32/registry
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 62b87921 (git): Skip irb on test-bundled-gems with Windows
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 9052d0d5 (git): Try to inject fiddle path as bundled gems for RJIT
hsbt (Hiroshi SHIBATA)
10:36 PM Revision b50360e0 (git): Update fiddle entries under the doc directory
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 470784cb (git): Expand stub-out scope of Fiddle.dlopen
hsbt (Hiroshi SHIBATA)
10:36 PM Revision ec2bd6f7 (git): Skip to existence check fiddle from TestExtLibs
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 16d446e8 (git): Removed fiddle from sync target
hsbt (Hiroshi SHIBATA)
10:36 PM Revision 908529b7 (git): Migrate fiddle as bundled gems
hsbt (Hiroshi SHIBATA)
09:25 PM Bug #21112 (Closed): Typo in error message when an incorrect key is used with WeakKeyMap
Applied in changeset commit:git|91a10c07579f282a94e4b5830feaeca87f9a7dd3.
----------
Fix a typo in WeakKeyMap argument error
[Bug #21112]
byroot (Jean Boussier)
07:18 PM Bug #21112 (Closed): Typo in error message when an incorrect key is used with WeakKeyMap
The `ObjectSpace::WeakKeyMap#[]=` method raises exception when key is either Symbol, Numeric or true/false/nil but error message looks like a bit incorrect:
```ruby
m = ObjectSpace::WeakKeyMap.new
m[:a] = 1
# 'ObjectSpace::WeakKeyM...
andrykonchin (Andrew Konchin)
09:25 PM Revision 91a10c07 (git): Fix a typo in WeakKeyMap argument error
[Bug #21112] byroot (Jean Boussier)
05:20 PM Feature #21033: Allow lambdas that don't access `self` to be Ractor shareable
Nice patch! I feel this makes Ractor programming practical.
~~ObjectSpace.each_object could effectively leak `self` after it has been marked as shareable, but I'm not sure if that's a real problem... Maybe it is ok since `self` won't sh...
osyoyu (Daisuke Aritomo)
12:27 PM Bug #21104: Net::HTTP connections failing in Ruby >= 3.4.0 on macOS with Happy Eyeballs enabled
@mjt58
Thank you for your reply. Since you're seeing this issue across different environments, I'm starting to think it's more likely influenced by software running on the host rather than a problem with network intermediaries.
Could y...
shioimm (Misaki Shioi)
11:33 AM Revision 02ec3152 (git): bump teeny
nagachika (Tomoyuki Chikanaga)
05:50 AM Bug #21088: TCPSocket.new raises Socket::ResolutionError instead of Errno::ECONNREFUSED for hosts defined in /etc/hosts
I think the changeset is worth to backport to ruby_3_4. nagachika (Tomoyuki Chikanaga)
04:20 AM Bug #21088 (Closed): TCPSocket.new raises Socket::ResolutionError instead of Errno::ECONNREFUSED for hosts defined in /etc/hosts
@dmlary
Unfortunately, I was unable to reproduce the issue you reported. However, I believe I have fixed the code that was likely causing the problem in this change.
https://github.com/ruby/ruby/pull/12678
It should be resolved in ...
shioimm (Misaki Shioi)
04:55 AM Revision 10d06b9a (git): [ruby/resolv] Load win32/resolv with rake test
https://github.com/ruby/resolv/commit/3ecfce3626 hsbt (Hiroshi SHIBATA)

02/03/2025

10:47 PM Bug #21111 (Closed): RbConfig::CONFIG['CXX'] quietly set to "false" when Ruby cannot build C++ programs
As reported in https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/2222 and https://trac.macports.org/ticket/70750, we've had numerous macOS users experience problems with compiling Ruby C++ extensions after upgrading to XCode ... stanhu (Stan Hu)
03:20 PM Misc #21110: Should Marshal.dump always use object links for repeated Float values?
Right, I think always adding a link makes sense.
Then the logic for flonum/not-flonum should be identical (as shown [here](https://github.com/ruby/ruby/pull/12679#discussion_r1937116017)).
Eregon (Benoit Daloze)
02:51 PM Misc #21110: Should Marshal.dump always use object links for repeated Float values?
I agree that `Marshal` should not depend on the details.
At least, `Float` should be distinguished only by its value, not its object ID.
OTOH, dump of `Float` is often longer:
```ruby
Marshal.dump(Math.log(324.0)) #=> "\x04\bf\x165...
nobu (Nobuyoshi Nakada)
01:08 PM Misc #21110: Should Marshal.dump always use object links for repeated Float values?
IMO Marshal should not depend on obscure implementation details like Flonum, i.e. Float whether fitting in a Flonum or not should be dumped the same with Marshal.
What do others think?
Eregon (Benoit Daloze)
01:02 PM Misc #21110 (Open): Should Marshal.dump always use object links for repeated Float values?
I've noticed (during the downstreaming ruby/spec in https://github.com/ruby/ruby/pull/12679) that a repeated Float value may be dumped "directly"/"immediately" without an object link on x86 architecture, and with a link in other cases. I... andrykonchin (Andrew Konchin)
01:54 PM Bug #21088 (Assigned): TCPSocket.new raises Socket::ResolutionError instead of Errno::ECONNREFUSED for hosts defined in /etc/hosts
shioimm (Misaki Shioi)
01:24 PM Bug #21088 (Closed): TCPSocket.new raises Socket::ResolutionError instead of Errno::ECONNREFUSED for hosts defined in /etc/hosts
Applied in changeset commit:git|1683dadb19876f0a64589bdbbcf6fff8143f78ff.
----------
Do not save ResolutionError if resolution succeeds for any address family (#12678)
* Do not save ResolutionError if resolution succeeds for any addres...
Anonymous
01:24 PM Revision 7317f967 (git): Move out from quarantine a Marshal.dump spec for Float (#12692)
* Move out from quarantine a Marshal.dump spec for Float
Co-authored-by: Benoit Daloze <eregontp@gmail.com>
andrykonchin (Andrew Konchin)
11:26 AM Revision 1683dadb (git): Do not save ResolutionError if resolution succeeds for any address family (#12678)
* Do not save ResolutionError if resolution succeeds for any address family
Socket with Happy Eyeballs Version 2 performs connection attempts and name resolution in parallel.
In the existing implementation, if a connection attempt fail...
Misaki Shioi
09:47 AM Revision f84d75ee (git): [ruby/openssl] pkey/ec: remove deprecated PKey::EC::Point#mul(ary, ary [, bn]) form
The method has two forms, each corresponding to EC_POINT_mul() and
EC_POINTs_mul(). The latter form does not work with any OpenSSL or
LibreSSL versions that are still supported by upstream.
The latter form has an extremely confusing beh...
rhenium (Kazuki Yamaguchi)
09:46 AM Revision 5a14f536 (git): [ruby/openssl] ssl: separate SSLContext#min_version= and #max_version=
Make these methods simple wrappers around
SSL_CTX_set_{min,max}_proto_version().
When we introduced these methods in commit https://github.com/ruby/openssl/commit/18603949d316 [1], which went
to v2.1.0, we added a private method to SSLC...
rhenium (Kazuki Yamaguchi)
09:29 AM Bug #21104: Net::HTTP connections failing in Ruby >= 3.4.0 on macOS with Happy Eyeballs enabled
shioimm (Misaki Shioi) wrote in #note-1:
> To help narrow down the cause, could you provide more information on the following?
> ...
Yes, I saw it first running `bundle install` with errors like:
```
Bundler::HTTPError Could not fe...
mjt58 (Mike Thompson)
07:07 AM Revision 8cbff4fe (git): Add sleep to PTY tests to stabilize flaky failures (#12691)
ono-max (Naoto Ono)
05:43 AM Revision 890020e3 (git): Removed manpages for bundled gems
hsbt (Hiroshi SHIBATA)
03:47 AM Bug #21108: C-c (SIGINT) crashes ruby when looping Ractors are not taken?
Thank you for your comment! Your patch looks promising. Hope it gets merged soon. osyoyu (Daisuke Aritomo)
01:58 AM Revision e8cf4414 (git): [ruby/weakref] Add missing block parameter
A block is part of the Delegator's contract. Ruby 3.4 issues a warning if a block is passed but unused. This commit fixes the warning by adding a block to the argument list.
https://github.com/ruby/weakref/commit/9495ec9191
decuplet (Nikita Shilnikov)
01:22 AM Revision 15e6f13f (git): [ruby/fiddle] Fix Fiddle.last_error on FFI backend and improve test
to work for all
(https://github.com/ruby/fiddle/pull/173)
https://github.com/ruby/fiddle/commit/ef2382a7ef
Eregon (Benoit Daloze)
01:22 AM Revision b5b50976 (git): [ruby/fiddle] Define Fiddle.last_error family and Fiddle.dlopen
statically
(https://github.com/ruby/fiddle/pull/172)
`RUBY_ENGINE` and `Fiddle::WINDOWS` should not change in a process, no
need to be checked inside the methods.
Also, `win32_last_error` and `win32_last_socket_error` are equal to
`las...
nobu (Nobuyoshi Nakada)
01:05 AM Revision 56c814a8 (git): [rubygems/rubygems] Bump the rb-sys group across 2 directories with 1 update
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).
Bumps the rb-sys group with 1 update in the /test/rubygems/t...
dependabot[bot]
01:05 AM Revision c0688c21 (git): [rubygems/rubygems] Raise a simpler error when RubyGems fails to activate a dependency
If you force uninstall a dependency but leave other gems depending on
it, those gems will fail to be activated.
In that case, RubyGems prints a rather complicated error:
```
$ rails --version
/Users/deivid/.asdf/installs/ruby/3.4.1/lib...
deivid (David Rodríguez)
01:05 AM Revision d645b62b (git): [rubygems/rubygems] Remove already fixed TODO
It was fixed by https://github.com/rubygems/rubygems/commit/3b0d44fbf5a3.
https://github.com/rubygems/rubygems/commit/4cf3429599
deivid (David Rodríguez)
01:05 AM Revision 98c56de8 (git): [ruby/json] Refactor further to expose the simpler escape search possible
https://github.com/ruby/json/commit/e03515ac8b byroot (Jean Boussier)
01:05 AM Revision 98e1c284 (git): [ruby/json] Refactor convert_UTF8_to_JSON to split searching and escaping code
The goal is to be able to dispatch to more optimized search implementations
without having to duplicate the escaping code.
Somehow, this is a few % faster already:
```
== Encoding activitypub.json (52595 bytes)
ruby 3.4.1 (2024-12-25 r...
byroot (Jean Boussier)
 

Also available in: Atom