Project

General

Profile

Activity

From 02/25/2023 to 03/03/2023

03/03/2023

11:02 PM Revision 4d59d016 (git): YJIT: fix CI issue reported by Koichi caused by small stack patch (#7442)
Includes small reproduction produced by Kokubun.
http://ci.rvm.jp/results/trunk-yjit@ruby-sp2-docker
maximecb (Maxime Chevalier-Boisvert)
10:55 PM Bug #19476 (Closed): Regexp unexpected partial match
This regular expression does not have the expected match since Ruby 3.2.
Ruby 3.2.1:
```ruby
> RUBY_VERSION
=> "3.2.1"
> ...
=> #<MatchData "123456" 1:"6">
> "123456789".match(/(\d-?\)?){6,}/)
=> #<MatchData "123456" 1:"6">
...
andreccosta (André Costa)
09:12 PM Bug #19469 (Closed): Crash when resizing generic iv list
Applied in changeset commit:git|62c2082f1f726cb90d8c332fbedbecf41d5d82ec.
----------
[Bug #19469] Fix crash when resizing generic iv list
The following script can sometimes trigger a crash:
```ruby
GC.stress = true
class Array
def ...
peterzhu2118 (Peter Zhu)
09:12 PM Revision 62c2082f (git): [Bug #19469] Fix crash when resizing generic iv list
The following script can sometimes trigger a crash:
```ruby
GC.stress = true
class Array
def foo(bool)
if bool
@a = 1
@b = 2
@c = 1
else
@c = 1
end
end
end
obj = []
obj.foo(true)
obj2 = []
obj2...
peterzhu2118 (Peter Zhu)
09:12 PM Revision 0700d0fd (git): Fix indentation in vm_setivar_default
peterzhu2118 (Peter Zhu)
08:48 PM Revision 8c8548b1 (git): YJIT: Fix a cargo test warning on x86_64 (#7428)
k0kubun (Takashi Kokubun)
07:45 PM Misc #19475: Propose Matthew Valentine-House (@eightbitraptor) as a core committer
Thank you for nominating me @k0kubun and @tenderlovemaking. It would be a privilege and an honour to be accepted as a committer. 🙇‍♂️ eightbitraptor (Matt V-H)
05:38 PM Misc #19475 (Closed): Propose Matthew Valentine-House (@eightbitraptor) as a core committer
I'd like to propose Matthew Valentine-House (@eightbitraptor) as a committer. He has been [an active contributor to Ruby](https://github.com/ruby/ruby/pulls?q=author%3Aeightbitraptor) in the following areas:
* **Variable Width Allocat...
k0kubun (Takashi Kokubun)
05:01 PM Feature #19443: Cache `Process.pid`
> it is easy to understand how 2ms has impact or not by showing the measured values of before/after.
Yes, unfortunately, being a public company, we have all these rules about material informations and such, so I wasn't sure what I co...
byroot (Jean Boussier)
08:02 AM Feature #19443: Cache `Process.pid`
byroot (Jean Boussier) wrote in #note-9:
> > How to read comment #7 results?
> ...
Thank you.
BTW it is easy to understand how 2ms has impact or not by showing the measured values of before/after.
Anyway, I agree that is valuable imp...
ko1 (Koichi Sasada)
07:50 AM Feature #19443: Cache `Process.pid`
@dalehamel noticed via tracing that we're also calling `getpid()` quite a lot in the thread scheduler.
I think in that case we can simply use `GET_VM()->fork_gen`, so I prepared a second patch for that https://github.com/ruby/ruby/pul...
byroot (Jean Boussier)
03:25 PM Revision 8e13e705 (git): [ruby/irb] Remove no longer necessary TruffleRuby test exclusions.
(https://github.com/ruby/irb/pull/527)
https://github.com/ruby/irb/commit/8473d0bc0f
Co-authored-by: Stan Lo <stan.lo@shopify.com>
Kevin Menard
02:32 PM Bug #19468 (Closed): Ruby 3.2: net/http sets UTF-8 encoding for binary responses
Applied in changeset commit:git|d78ae78fd76e556e281a743c75bea4c0bb81ed8c.
----------
rb_str_modify_expand: clear the string coderange
[Bug #19468]
b0b9f7201acab05c2a3ad92c3043a1f01df3e17f errornously stopped
clearing the coderange.
S...
romuloceccon (Rômulo Ceccon)
01:28 PM Bug #19468: Ruby 3.2: net/http sets UTF-8 encoding for binary responses
Actually, the assumption in https://github.com/ruby/ruby/commit/b0b9f7201a might have been incorrect. The function is called `rb_str_modify_expand` and `rb_str_modify` does clear the coderange, so it is somewhat legitimate for extension ... byroot (Jean Boussier)
01:23 PM Bug #19468: Ruby 3.2: net/http sets UTF-8 encoding for binary responses
> This patch fixes the issue with both zlib and openssl:
Interesting, that you for the bug report. One problem though is that the point of https://github.com/ruby/ruby/commit/b0b9f7201a, as to not clear the coderange as often when it ...
byroot (Jean Boussier)
10:12 AM Bug #19468: Ruby 3.2: net/http sets UTF-8 encoding for binary responses
Another way to reproduce the problem:
```
$ ruby
require "zlib"
p Zlib::Inflate.new.inflate(Zlib.deflate("\u3042".b)).ascii_only?
p Zlib::Inflate.new.inflate(Zlib.deflate("\u3042".b), buffer: "".b).ascii_only?
^D
false # <==...
romuloceccon (Rômulo Ceccon)
02:32 PM Revision d78ae78f (git): rb_str_modify_expand: clear the string coderange
[Bug #19468]
b0b9f7201acab05c2a3ad92c3043a1f01df3e17f errornously stopped
clearing the coderange.
Since `rb_str_modify` clears it, `rb_str_modify_expand`
should too.
romuloceccon (Rômulo Ceccon)
01:41 PM Revision b49053a6 (git): [ruby/irb] Avoid slow symbol completion when completion target is an
empty symbol
(https://github.com/ruby/irb/pull/534)
https://github.com/ruby/irb/commit/35697f3ef3
tompng (tomoya ishida)
10:18 AM Revision a2b776a9 (git): [ruby/irb] Fix prompt test not to change STDIO.external_encoding
(https://github.com/ruby/irb/pull/535)
https://github.com/ruby/irb/commit/09f16259db
tompng (tomoya ishida)
09:50 AM Revision f1fe4a4a (git): [rubygems/rubygems] Update current_ruby.rb
https://github.com/rubygems/rubygems/commit/8755ca959e johnnyshields (Johnny Shields)
09:50 AM Revision 79ede4ae (git): [rubygems/rubygems] Alias CurrentRuby#mswin?, mswin64?, mingw?, x64_mingw? to #windows?. (This is done instead of logging a deprecation warning.)
https://github.com/rubygems/rubygems/commit/b9fcc7c0ab johnnyshields (Johnny Shields)
09:26 AM Misc #19429: DevMeeting-2023-03-09
* [Bug #18743] Enumerator#next / peek re-use each others stacktraces (ko1)
* It should be a bug and there is a proposed patch.
ko1 (Koichi Sasada)
08:58 AM Bug #18743: Enumerator#next / peek re-use each others stacktraces
@sos4nt could you please assign this issue to @matz? This is a core class problem, and he is the listed maintainer for it.
I can confirm the bug still exists in ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-linux]
marcper (Marcelo Pereira)
06:30 AM Revision 6b46057e (git): Expand the test directory to real path
When the test source directory path contains symbolic links, that
directory might be placed earlier in the result of
`IRB::InputCompletor.retrieve_gem_and_system_load_path`, than other
directories in the source tree that are expanded to ...
nobu (Nobuyoshi Nakada)
06:27 AM Bug #19471 (Closed): Regexp::compile does not handle :timeout argument
Applied in changeset commit:git|680bd9027f8cb7977bbc216609db2f4e3cf199a8.
----------
[Bug #19471] `Regexp.compile` should handle keyword arguments
As well as `Regexp.new`, it should pass keyword arguments to the
`Regexp#initialize` met...
nobu (Nobuyoshi Nakada)
06:27 AM Revision 680bd902 (git): [Bug #19471] `Regexp.compile` should handle keyword arguments
As well as `Regexp.new`, it should pass keyword arguments to the
`Regexp#initialize` method.
nobu (Nobuyoshi Nakada)
04:46 AM Revision 103a6531 (git): Regenerate parsers with racc-1.6.2
hsbt (Hiroshi SHIBATA)
04:43 AM Revision 90b74d8c (git): [rubygems/rubygems] Fix warning about ambiguous `/`
```
/path/to/rubygems/test/rubygems/test_gem_commands_exec_command.rb:745: warning: ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator
```
https://github.com/rubygems/rubygems/commit...
deivid (David Rodríguez)
04:43 AM Revision 7fea8485 (git): [rubygems/rubygems] Fix warnings about unused variable
```
/path/to/rubygems/test/rubygems/test_gem_commands_exec_command.rb:180: warning: assigned but unused variable - platforms
```
https://github.com/rubygems/rubygems/commit/7e022cb5e3
deivid (David Rodríguez)
04:43 AM Revision b6d914c7 (git): [rubygems/rubygems] Fix warning about ambiguous `*`
```
/path/to/rubygems/test/rubygems/test_gem_commands_exec_command.rb:42: warning: `*' interpreted as argument prefix
```
https://github.com/rubygems/rubygems/commit/0806ebf4e0
deivid (David Rodríguez)
02:44 AM Revision bd17bea6 (git): [ruby/irb] Fix warnings because of `@context.main.delete`
If the main object of the context has `#delete` method, the following
warning is printed.
```
irb: warn: can't alias delete from irb_delete.
```
https://github.com/ruby/irb/commit/00b39be61f
nobu (Nobuyoshi Nakada)
02:15 AM Bug #19383: Time.now.zone encoding for German display language in Windows is incorrect
How about the patch at #note-5?
nobu (Nobuyoshi Nakada)
01:19 AM Revision 941d36d1 (git): fix timing bug
passing will and closing notification can conflict and
`Ractor::Selector#empty?` can return wrong answer.
This patch fix it.
```
s = Ractor::Selector.new
s.add Ractor.new{10}
s.add Ractor.new{20}
r, v = s.wait
v...
ko1 (Koichi Sasada)
12:40 AM Revision ddd3c92b (git): [DOC] Add missing word to documentation_guide.md
Ezra-Shimon Rosenfeld

03/02/2023

11:05 PM Revision 490efd67 (git): Increase timeout for MinGW make test
Apparently it's too short for MinGW
https://github.com/ruby/ruby/actions/runs/4317938324/jobs/7535630842
k0kubun (Takashi Kokubun)
10:30 PM Revision 7b9aeaff (git): YJIT: shrink stack_size/sp_offet to u8/i8 (#7426)
maximecb (Maxime Chevalier-Boisvert)
09:21 PM Revision 34026afd (git): YJIT: Delete stale `frozen_bytes` related code (#7423)
The code and comments in there have been disabled by comments for a long
time. The issues that the counter used to solve are now solved more
comprehensively by "runningness" [tracking][1] introduced by Code GC
and [delayed deallocation][...
alanwu (Alan Wu)
09:16 PM Revision a9f4e5cc (git): YJIT: Fix default call threshold in help (#7424)
k0kubun (Takashi Kokubun)
09:13 PM Revision 44670840 (git): [rubygems/rubygems] Enable `Layout/DefEndAlignment`
https://github.com/rubygems/rubygems/commit/4403613fae deivid (David Rodríguez)
08:41 PM Feature #19474 (Closed): Reduce the number of NEWOBJ macros
[Github PR](https://github.com/ruby/ruby/pull/7393)
Since the introduction of variable width allocation with `RVARGC` there are a lot of different `*NEWOBJ*` macros. Currently there are:
* `RB_RVARGC_NEWOBJ_OF`
* `RB_RVARGC_EC_NEWOB...
eightbitraptor (Matt V-H)
08:13 PM Revision 02ee8cb0 (git): Increase timeout for ruby/debug tests (#7421)
k0kubun (Takashi Kokubun)
08:04 PM Bug #19470: Frequent small range-reads from and then writes to a large array are very slow
This looks like a pretty typical effect of slicing, so I'm not sure there's something to "fix" here. JRuby has similar behavior.
Improving the sharing heuristic might help, but it's hard to know where to draw the line; should a slice ...
headius (Charles Nutter)
05:58 PM Revision 98235834 (git): Investigate missing ./autogen.sh
https://github.com/ruby/ruby/actions/runs/4316772946/jobs/7532986318 k0kubun (Takashi Kokubun)
05:47 PM Revision 533c8c0c (git): Re-skip an unstable Ractor test
https://github.com/ruby/ruby/actions/runs/4316423442/jobs/7532190115
http://ci.rvm.jp/results/trunk-yjit@ruby-sp2-docker/4466770
k0kubun (Takashi Kokubun)
05:11 PM Revision fac92cd0 (git): Revert "Revert "Re-enable test_ractor for YJIT""
This reverts commit 9792d9e40f790e6deb18ead56a8befc9d5c4bc51.
Ractor implementation has been rewritten. Let's see if it works now.
k0kubun (Takashi Kokubun)
05:05 PM Revision 573522bd (git): [rubygems/rubygems] Simplify the gem package file filter in the gemspec template
The regular expression is difficult to understand at a glance.
Let's replace it with a much simpler string comparison.
https://github.com/rubygems/rubygems/commit/a3745aa03f
Orien Madgwick
04:52 PM Bug #19447 (Closed): Merge `internal/rgengc.h` into public `internal/gc.h` header
I merged the PR. Thank you! tenderlovemaking (Aaron Patterson)
03:57 PM Revision ce476cdf (git): YJIT: Fix cfunc splat
Follow-up for cb8a040b7906c09d9d3ac3d3fe853f633005024f. Jimmy Miller
03:08 PM Revision 5875fce6 (git): `Ractor::Selector#empty?`
It returns the waiting set is empty or not.
Also add Ractor::Selector's tests.
ko1 (Koichi Sasada)
02:43 PM Revision 5f3c7ac1 (git): [rubygems/rubygems] Replace lockfile with `.locked`
https://github.com/rubygems/rubygems/commit/203f3e3802 Tony Hsu
01:53 PM Revision 55643961 (git): [ruby/irb] Handle long inspect and control character in prompt
string
(https://github.com/ruby/irb/pull/528)
* Handle long inspect and control characters in prompt string
* Add constants for prompt truncate length, omission and replace pattern
* Simply compare string instead of regexp in prompt t...
tompng (tomoya ishida)
01:49 PM Revision da6ac30d (git): [ruby/irb] Specify metadata to provide richer information on
rubygems.org
(https://github.com/ruby/irb/pull/532)
https://github.com/ruby/irb/commit/f01c2a6ac1
st0012 (Stan Lo)
12:11 PM Bug #19473: can't be called from trap context (ThreadError) is too limiting
Another approach would be to do it like e.g. Java which runs signal handlers on a separate thread.
Then there is no potential problem of the signal handler being reentrant to the main thread/fiber.
But that is a much bigger semantic ch...
Eregon (Benoit Daloze)
12:07 PM Bug #19473: can't be called from trap context (ThreadError) is too limiting
Also `Monitor` has the same problem on CRuby:
```
$ ruby -ve 'm=Monitor.new; trap(:HUP) { m.synchronize { p :OK } }; Process.kill :HUP, Process.pid; sleep 0.1'
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-linux]
-e:1:in `synch...
Eregon (Benoit Daloze)
12:04 PM Bug #19473 (Open): can't be called from trap context (ThreadError) is too limiting
Simple reproducer:
```
$ ruby -ve 'm=Mutex.new; trap(:HUP) { m.synchronize { p :OK } }; Process.kill :HUP, Process.pid; sleep 0.1'
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-linux]
-e:1:in `synchronize': can't be called from...
Eregon (Benoit Daloze)
12:08 PM Misc #19429: DevMeeting-2023-03-09
* [Bug #19473] can't be called from trap context (ThreadError) is too limiting (eregon)
* This seems a needless limitation on CRuby causing real problems. Let's remove this incorrect exception/limitation?
Eregon (Benoit Daloze)
06:50 AM Misc #19429: DevMeeting-2023-03-09
* [Bug #19230] The openssl backend of securerandom is no longer needed
* The openssl backend of securerandom has not worked for several years, but we have received no bug reports. I think no one uses it. Let's remove the backend.
mame (Yusuke Endoh)
06:47 AM Misc #19429: DevMeeting-2023-03-09
* [Feature #19472] Ractor::Selector to wait multiple ractors (ko1)
* let me take a time to discuss about new Ractor synchronization API
ko1 (Koichi Sasada)
10:18 AM Revision 72811dea (git): MSWin: Use MESSAGE_BEGIN/MESSAGE_END instead of bare `echo`
To strip enclosing double quotes. nobu (Nobuyoshi Nakada)
08:59 AM Bug #19416: Inconsistent behaviour for Struct.new without any member_names
FWIW, `Data` consciously allows member-less definitions, intended to be a tag/case values:
```ruby
class Request
Success = Data.new(:body)
NotFound = Data.new
```
The latter is rendered consistently with `Success`, convenient t...
zverok (Victor Shepelev)
08:58 AM Feature #19472: Ractor::Selector to wait multiple ractors
Eregon (Benoit Daloze) wrote in #note-3:
> That currently (AFAIK) means thousands of OS threads, and that AFAIK results in very bad performance or scheduling from the kernel.
> ...
This is why I'm working on MaNy project (M:N threads).
ko1 (Koichi Sasada)
08:32 AM Feature #19472: Ractor::Selector to wait multiple ractors
ko1 (Koichi Sasada) wrote:
> For (2), it is important to supervise thousands of ractors.
That currently (AFAIK) means thousands of OS threads, and that AFAIK results in very bad performance or scheduling from the kernel.
Is there a ...
Eregon (Benoit Daloze)
07:13 AM Feature #19472: Ractor::Selector to wait multiple ractors
Is it compatible with fiber scheduler? ioquatix (Samuel Williams)
06:45 AM Feature #19472 (Assigned): Ractor::Selector to wait multiple ractors
This ticket propose `Ractor::Selector` API to wait multiple ractor events.
Now, if we want to wait for taking from r1, r2 and r3, we can use `Ractor.select()` like that.
```ruby
r, v = Ractor.select(r1, r2, r3)
p "taking an obj...
ko1 (Koichi Sasada)
08:43 AM Bug #19392: Endless method and parsing priorities
`and` is actually not alone.
The code like this is also parsed not the way one would intuitively expect:
```ruby
def save = File.write(name, self.to_yaml) unless invalid?
```
Actual parsing is this:
```ruby
(def save = File.wri...
zverok (Victor Shepelev)
08:00 AM Bug #18797 (Closed): Third argument to Regexp.new is a bit broken
Applied in changeset commit:git|04cfb26bd394b8e92f24f18799f5e9fc96b2ea69.
----------
Remove support for the Regexp.new 3rd argument
This was deprecated in Ruby 3.2.
Fixes [Bug #18797]
jeremyevans (Jeremy Evans)
07:59 AM Revision 14355dde (git): Use https://www.ruby-lang.org/en/downloads/releases/ for download the old versions of Ruby packages
hsbt (Hiroshi SHIBATA)
07:42 AM Revision 04cfb26b (git): Remove support for the Regexp.new 3rd argument
This was deprecated in Ruby 3.2.
Fixes [Bug #18797]
jeremyevans (Jeremy Evans)
07:14 AM Revision 6207a3f5 (git): Enable flaky ractor test
I hope a4421bd73c286253311c2cdf8c78ed258f8cff44 will solve the issue... ko1 (Koichi Sasada)
05:31 AM Revision a4421bd7 (git): Rewrite Ractor synchronization mechanism
This patch rewrites Ractor synchronization mechanism, send/receive
and take/yield.
* API
* Ractor::Selector is introduced for lightweight waiting
for many ractors.
* Data structure
* remove `struct rb_ractor_waiting_list` and us...
ko1 (Koichi Sasada)
04:25 AM Feature #19450: Is there an official way to set a class name without setting a constant?
> I haven't come across a case where you cannot also define name on those nested classes/modules, though it is possible such a case exists.
It's not reasonable, and in fact cumbersome, to expect users to override `Class#name` for every ...
ioquatix (Samuel Williams)
02:42 AM Feature #19450: Is there an official way to set a class name without setting a constant?
ioquatix (Samuel Williams) wrote in #note-22:
> > I haven't yet seen a non-contrived example where overriding name will not work
> ...
I haven't come across a case where you cannot also define `name` on those nested classes/modules, th...
jeremyevans0 (Jeremy Evans)
12:57 AM Feature #19450: Is there an official way to set a class name without setting a constant?
> I haven't yet seen a non-contrived example where overriding name will not work
Any time you have nested class or modules in an anonymous module, it gets very ugly.
> ...
Already a possible attack surface as demonstrated.
> due to ho...
ioquatix (Samuel Williams)
03:59 AM Revision 1abec43b (git): Fix rbs (#7415)
* Update RBS to skip validation task
* Revert TEST_BUNDLED_GEMS_ALLOW_FAILURES
soutaro (Soutaro Matsumoto)
12:56 AM Bug #19471 (Closed): Regexp::compile does not handle :timeout argument
I think Regexp::compile is just an alias for Regexp::new, so I assume it handles the :timeout argument.
However, Regexp::compile does not seem to handle the :timeout argument properly.
```
$ irb
irb(main):001:0> RUBY_VERSION
=> "3...
os (Shigeki OHARA)
12:50 AM Revision d2d521b2 (git): [rubygems/rubygems] Regenerate lockfile if spec list is invalid/empty.
https://github.com/rubygems/rubygems/commit/d2c56315e2 Ellen Marie Dash
12:29 AM Revision 53f6173c (git): merge revision(s) 8ce2fb9bbbaea14737c84385b1573f743a30f773,3a0f6ce1d31eefd8af01b50f3632a64d64e8f8c1: [Backport #19415]
Only emit circular dependency warning for owned thread shields [Bug
#19415]
If multiple threads attemps to load the same file concurrently
it's not a circular dependency issue.
So we check that the exis...
naruse (Yui NARUSE)

03/01/2023

11:42 PM Revision 35457ebb (git): [ruby/uri] Replace RubyDoc.info links with Ruby.GitHub.io
As requested.
https://github.com/ruby/uri/commit/c272f205f9
AlexWayfer (Alexander Popov)
11:42 PM Revision bc668d75 (git): [ruby/uri] Take out GitHub link for gemspec metadata
https://github.com/ruby/uri/commit/ca4638a4b3 AlexWayfer (Alexander Popov)
11:42 PM Revision 8a5110b6 (git): [ruby/uri] Populate gemspec metadata object
https://github.com/ruby/uri/commit/31748915d0 AlexWayfer (Alexander Popov)
11:42 PM Revision 93a54a3c (git): [ruby/uri] Sort gemspec `metadata` object alphabetical
https://github.com/ruby/uri/commit/1e9420b57c AlexWayfer (Alexander Popov)
11:42 PM Revision 932c0e77 (git): [ruby/uri] Remake `metadata` object in `gemspec` into one assignment
https://github.com/ruby/uri/commit/19a19ccde6 AlexWayfer (Alexander Popov)
11:42 PM Revision 57e6d664 (git): [ruby/uri] Add documentation link into gemspec
https://github.com/ruby/uri/commit/19ced145f4 AlexWayfer (Alexander Popov)
11:38 PM Bug #19470: Frequent small range-reads from and then writes to a large array are very slow
> Do you have any evidence that this problem actually occurs frequently?
I cannot say whether this affects many projects. I've encountered this twice so far when optimizing code to reduce memory allocations (by writing to the same arr...
giner (Stanislav German-Evtushenko)
12:55 PM Bug #19470: Frequent small range-reads from and then writes to a large array are very slow
i think maybe the GC could optimize something?
```
100000.times do
arr[0..3] #=> GC notices that the result is unused?
GC.stress # would the GC delete the shared copy?
time_start = Time.now
arr[5] = 100 # takes ?
time...
Hanmac (Hans Mackowiak)
08:50 AM Bug #19470: Frequent small range-reads from and then writes to a large array are very slow
Sorry, I read the example more closely, it seems we are taking a small slice, which marks the original array as shared. So both the original array and the slice point at the same memory allocation, and on mutation, a copy is made. I thin... ioquatix (Samuel Williams)
08:45 AM Bug #19470: Frequent small range-reads from and then writes to a large array are very slow
It's interesting to me that reading items can mark the array as shared, that seems non-trivial/non-obvious behaviour to me. What's the rational for it? ioquatix (Samuel Williams)
05:59 AM Bug #19470: Frequent small range-reads from and then writes to a large array are very slow
We the core team know the potential problem with the memory sharing technique. We could be wrong, but we currently believe its advantage (performance improvement in many typical and major cases) is larger enough than its disadvantage (po... mame (Yusuke Endoh)
05:36 AM Bug #19470 (Open): Frequent small range-reads from and then writes to a large array are very slow
Write to a large array gets very slow when done after range-reading more than 3 items. In such case the original array gets marked as shared which triggers CoW on a small change afterwards. This leads to a significant performance impact ... giner (Stanislav German-Evtushenko)
11:16 PM Feature #19450: Is there an official way to set a class name without setting a constant?
I have tests where I am overriding the `name` method for anonymous classes, so I understand the desire for this feature. I'm on the fence about whether it's worth adding a core method for this, as I haven't yet seen a non-contrived examp... jeremyevans0 (Jeremy Evans)
11:04 PM Misc #19429: DevMeeting-2023-03-09
* [Bug #19455] Ruby 3.2: wrong Regexp encoding with non-ASCII comments (jeremyevans0)
* Is using US-ASCII encoding for such regexps a bug? Since the regexp itself does not use non-ASCII, it seems reasonable to use ASCII encoding for t...
jeremyevans0 (Jeremy Evans)
10:12 PM Bug #19378: Windows: Use less syscalls for faster require of big gems
Just to be clear, this issue affects all Windows MRI platforms, so both mswin64 and mingw32 (mingw & ucrt builds) are affected. MSP-Greg (Greg L)
09:33 PM Revision cb8a040b (git): YJIT: Properly deal with cfunc splat when no args needed (#7413)
Related to:
https://github.com/ruby/ruby/pull/7377
Previously it was believed that there was a problem with a combination
of cfuncs + splat + send, but it turns out the same issue happened
without send. For example `Integer.sqrt(1, *[])...
Jimmy Miller
09:07 PM Revision a80906a7 (git): Allow failing rbs failures for now
will wait until soutaro fixes it.
The problem of bundled gems is that you can't really revert it as long
as you have scheduled "update bundled_gems".
k0kubun (Takashi Kokubun)
08:09 PM Revision 27c2572d (git): YJIT: reject large stacks so we can use i8/u8 stack_size and stack_offset (#7412)
* Reject large stacks so we can use i8/u8 stack_size and stack_offset
* Add rejection test for iseq too long as well
maximecb (Maxime Chevalier-Boisvert)
06:46 PM Bug #19412: Socket starts queueing and not responding after a certain amount of requests
Using the server given, I cannot reproduce using the following Ruby code:
```ruby
require 'socket'
PORT = 8080
LISTEN = '127.0.0.1'
20000.times do
socket = TCPSocket.new(LISTEN, PORT)
socket.write("HTTP/1.1 GET /\n")
...
jeremyevans0 (Jeremy Evans)
06:14 PM Bug #19412: Socket starts queueing and not responding after a certain amount of requests
@jeremyevans0 yes, it behaves the same regarding the max amount of requests it can handle:
```
$ ab -n 20000 -c 50 http://127.0.0.1:8080/
This is ApacheBench, Version 2.3 <$Revision: 1901567 $>
Copyright 1996 Adam Twiss, Zeus Tec...
brodock (Gabriel Mazetto)
06:02 PM Revision 559dfea7 (git): Test with unreleased RBS (#7411)
* Use RBS 3.0.1
3.0.2 cannot run test on Ruby CI. Waiting for the next release...
* Use unreleased version of RBS
soutaro (Soutaro Matsumoto)
05:15 PM Revision 5e607cfa (git): YJIT: Use a boxed slice for outgoing branches and cme dependencies (#7409)
YJIT: Use a boxed slice for outgoing branches
and cme dependencies
k0kubun (Takashi Kokubun)
04:11 PM Bug #19469: Crash when resizing generic iv list
Could this be the cause of #19433?
The stack traces seem to indicate generic IV table resizing.
alanwu (Alan Wu)
11:13 AM Bug #18572: Performance regression when invoking refined methods
From https://bugs.ruby-lang.org/issues/14083#note-3 it seems part of the problem at least is CRuby currently implements what I would call invalid usages of refinements (different set of activates refinements over time for a given call si... Eregon (Benoit Daloze)
11:09 AM Bug #14083: Refinement in block calling incorrect method
My reading of https://bugs.ruby-lang.org/projects/ruby-master/wiki/RefinementsSpec#Scope-of-refinements is that the expected output here is:
> A refinement is activated in a certain scope.The scope of a refinement is lexical in the sens...
Eregon (Benoit Daloze)
08:18 AM Revision 0d415a32 (git): Enable DEBUG_LOG feature on USE_RUBY_DEBUG_LOG
`ruby_set_debug_option` is needed for `RUBY_DEBUG_LOG` feature
so it should be called when `USE_RUBY_DEBUG_LOG` is true.
ko1 (Koichi Sasada)
07:56 AM Revision 40e5ee64 (git): Implement Write Barrier for `autoload_table_type`
It's just a decorated st_table, so we call `RB_OBJ_WRITTEN` after
inserting to it.
We also call `RB_OBJ_WRITTEN` on delete for completeness even though
it's a noop.
byroot (Jean Boussier)
07:02 AM Revision ee83274f (git): Update bundled gems list at 2023-03-01
git[bot]
07:02 AM Revision 47f8bf50 (git): [DOC] Clarify IO#autoclose impact on #close
Mention that autoclose changes the behavior of explicit close in addition to implicit close at IO finalization. larskanis (Lars Kanis)
04:25 AM Bug #17998: ractor: process hanging (with ractors initialized, but not being used)
I don't know. This is not my issue in the first place. xtkoba (Tee KOBAYASHI)
02:50 AM Revision 62b3bcba (git): [rubygems/rubygems] Auto-heal on corrupted lockfile with missing deps
Following up on https://github.com/rubygems/rubygems/pull/6355, which
turned a crash into a nicer error message, this commit auto-heals the
corrupt lockfile instead.
In this particular case (a corrupt Gemfile.lock with missing
dependenc...
dodecadaniel (Daniel Colson)

02/28/2023

11:58 PM Misc #19431: DevMeeting at RubyKaigi 2023
Will attend. alanwu (Alan Wu)
03:47 PM Misc #19431: DevMeeting at RubyKaigi 2023
I'll attend (optimistically, travel not booked yet). Eregon (Benoit Daloze)
08:25 PM Bug #19378: Windows: Use less syscalls for faster require of big gems
Code using `GetFinalPathNameByHandleW` already exists in win32/win32.c, see
https://github.com/ruby/ruby/blob/c43fbe4ebd2b519601f0b90ca98fa096799d3846/win32/win32.c#L2013-L2022
For cross-reference, see also [Bug #19246 'Rebuilding ...
MSP-Greg (Greg L)
07:49 PM Bug #19469 (Closed): Crash when resizing generic iv list
GitHub PR: https://github.com/ruby/ruby/pull/7407
The following script can sometimes trigger a crash:
```ruby
GC.stress = true
class Array
def foo(bool)
if bool
@a = 1
@b = 2
@c = 1
else
...
peterzhu2118 (Peter Zhu)
06:05 PM Revision c43fbe4e (git): Fix spelling (#7405)
John Bampton
06:04 PM Revision 966adfb7 (git): YJIT: Compress BranchGenFn and BranchShape (#7401)
* YJIT: Compress BranchGenFn and BranchShape
* YJIT: Derive Debug for Branch
* YJIT: Capitalize BranchGenFn names
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Alan Wu <alansi.xingwu@...
k0kubun (Takashi Kokubun)
06:03 PM Revision 67ad831b (git): YJIT: Use a boxed slice for gc_obj_offsets (#7397)
* YJIT: Use a boxed slice for gc_obj_offsets
* YJIT: Stop using Option
* YJIT: s/add_counter/incr_counter_by/
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
k0kubun (Takashi Kokubun)
05:09 PM Revision 3766cbce (git): Update Rust bindgen
eightbitraptor (Matt V-H)
05:09 PM Revision 5e4b8017 (git): Update the depend files
eightbitraptor (Matt V-H)
05:09 PM Revision 460f399c (git): Merge internal/rgengc.h and internal/gc.h
eightbitraptor (Matt V-H)
04:57 PM Revision de66b60f (git): YJIT: add defer_empty_count stat
Count how often we defer from a block that is empty maximecb (Maxime Chevalier-Boisvert)
04:04 PM Bug #19246: Rebuilding the loaded feature index much slower in Ruby 3.1
This does seem like a considerable slowdown on Windows.
The above code uses absolute paths with `require`, and also adds nonexistent files to `$LOADED_FEATURES`. I changed the code so that all requires are simply a `File.basename`,
...
MSP-Greg (Greg L)
02:36 PM Revision 9ddd7306 (git): [ruby/irb] Display and prioritise instance methods in `ls
<module/class>`
(https://github.com/ruby/irb/pull/496)
https://github.com/ruby/irb/commit/e3d21f9329
st0012 (Stan Lo)
12:54 PM Revision 2d6097a0 (git): [rubygems/rubygems] Fix method redefinition warning in gem exec specs
https://github.com/rubygems/rubygems/commit/f177990d4c segiddins (Samuel Giddins)
12:27 PM Bug #19468 (Closed): Ruby 3.2: net/http sets UTF-8 encoding for binary responses
net/http on Ruby 3.2 has changed the encoding of binary responses from SSL connected hosts (non-SSL connections are not affected):
``` ruby
# req.rb
require 'openssl'
require 'net/http'
puts "openssl ext: #{OpenSSL::VERSION}"
put...
romuloceccon (Rômulo Ceccon)
10:01 AM Misc #19276: It is not possible to reply to emails from redmine
@graywolf We may fixed this issue. hsbt (Hiroshi SHIBATA)
09:56 AM Bug #18614: Error (busy loop) in TestGemCommandsSetupCommand#test_destdir_flag_does_not_try_to_write_to_the_default_gem_home
@duerst I closed this because this failure may cause environmental issue. If you still have this issue, please re-open this. Thanks. hsbt (Hiroshi SHIBATA)
08:53 AM Bug #18614 (Closed): Error (busy loop) in TestGemCommandsSetupCommand#test_destdir_flag_does_not_try_to_write_to_the_default_gem_home
hsbt (Hiroshi SHIBATA)
09:40 AM Feature #19465: [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
Copy Eric's message from [ruby-core:112626](https://ml.ruby-lang.org/mailman3/hyperkitty/list/ruby-core@ml.ruby-lang.org/message/GJTGY77GFCGBOAIFTSLEYYGO2ENSDR52/)
> 35136e1e9c232ad7a03407b992b2e86b6df43f63 is broken with `gcc-11 anno...
hsbt (Hiroshi SHIBATA)
08:27 AM Revision cf18f0b8 (git): Implement Write Barrier for `autoload_data`
It's not uncommon for libraries to add thing sinto
autoload that won't necessarily be loaded.
This can cause hundreds or thousands of entries to be
left over in the autoload table, so it's best not to
mark them on every minor.
byroot (Jean Boussier)
07:01 AM Revision cd199128 (git): Update bundled gems list at 2023-02-28
git[bot]
05:29 AM Revision 9cc0ac22 (git): Update lib/net/http/status.rb
hsbt (Hiroshi SHIBATA)
03:44 AM Revision 66b89b06 (git): Also ignore dismissed CodeQL alerts at tests and URI library
hsbt (Hiroshi SHIBATA)
03:35 AM Revision c3e57d68 (git): Bump ruby/setup-ruby from 1.138.0 to 1.139.0
Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.138.0 to 1.139.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/d3c9825d67b0d8720afdfdde5af56c79fd...
dependabot[bot]
03:07 AM Revision 71dae78b (git): [ruby/stringio] Implement write barrier on StringIO
It only has a single reference set in 3 places which
makes it fairly easy to implement.
https://github.com/ruby/stringio/commit/009896b973
byroot (Jean Boussier)
03:05 AM Revision ad679ec9 (git): Ignore rb/overly-large-range on URI
hsbt (Hiroshi SHIBATA)
03:05 AM Revision c21260e3 (git): Enable only master branch for CodeQL push trigger
hsbt (Hiroshi SHIBATA)
03:05 AM Revision 9ff09d69 (git): Run CodeQL each PRs again
hsbt (Hiroshi SHIBATA)
02:48 AM Revision 7a9fb326 (git): Do not upload sarif file as artifact
hsbt (Hiroshi SHIBATA)
02:48 AM Revision fbbe2850 (git): Do not OSS scorecards check each push
hsbt (Hiroshi SHIBATA)
02:04 AM Revision d2c38aa8 (git): A file was missing in test/excludes for TestArraySubclass
luke-gru (Luke Gruber)
01:27 AM Revision 97b53d1a (git): Remove "unused parameter" warnings on include of ruby.h
These warnings are displayed when compiling with flag "-Wunused-parameter" (or
with "-Wall -Wextra").
Sébastien Helleu

02/27/2023

11:25 PM Bug #19313: Leaked file descriptors while running test-all
This does not happen on Ubuntu 22.04 for me.
`$ ldd --version`
`ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35`
luke-gru (Luke Gruber)
11:17 PM Bug #17998: ractor: process hanging (with ractors initialized, but not being used)
Is this still an issue with current ruby @xtkoba? I checkout out your branch and with a few modifications for Ractor::IsolationErrors, it worked for me.
It worked on: 3.3.0-dev and 3.2.0 (2022-12-25 revision a528908271)
luke-gru (Luke Gruber)
10:36 PM Misc #19431: DevMeeting at RubyKaigi 2023
I'll attend. peterzhu2118 (Peter Zhu)
09:36 PM Bug #18572: Performance regression when invoking refined methods
Yes, the perf regression is unfortunate.
The current per-call-site cache (`CC`) in the interpreter is keyed on
`[recever_class, call_target_method_entry_validity]` -- the lexical scope that
is used to resolve refinement definition for e...
alanwu (Alan Wu)
03:51 PM Bug #18572: Performance regression when invoking refined methods
Potential fix: https://github.com/ruby/ruby/pull/4323 Eregon (Benoit Daloze)
09:34 PM Revision ba55706f (git): fix test/rubygems/test_gem_package_task.rb when in -j mode
This test skipped sometimes due to failure to load 'rake/packagetask'.
This is due to manipulation of $LOAD_PATH by other rubygems tests. If
rake is loaded before any rubygems tests run, then it works fine.
To reproduce the skipping beh...
luke-gru (Luke Gruber)
08:53 PM Revision 283c71ee (git): Skip a spec failing on master
https://github.com/ruby/ruby/actions/runs/4286361460/jobs/7466545010
http://ci.rvm.jp/results/trunk_gcc9@ruby-sp2-docker/4462424
http://ci.rvm.jp/results/trunk_clang_13@ruby-sp2-docker/4462422
k0kubun (Takashi Kokubun)
08:02 PM Revision 18b4def4 (git): Update to ruby/spec@e7dc804
Eregon (Benoit Daloze)
08:02 PM Revision de601390 (git): Update to ruby/mspec@dc2eb26
Eregon (Benoit Daloze)
06:34 PM Bug #18731: Parallel test-all sometimes does not run at all some tests
I've been working a bit on the parallel runner and I've noticed this problem too.
```
Raise if the check Test::Unit::TestCase.test_suites-suites (which is the bug) returns an empty Array. It won't catch all issues though when e.g. 2nd t...
luke-gru (Luke Gruber)
06:11 PM Revision f38c6552 (git): Remove intern/gc.h from Make deps
eightbitraptor (Matt V-H)
06:11 PM Revision 98e4bdf3 (git): Update YJIT-bindgen
eightbitraptor (Matt V-H)
06:11 PM Revision ae5e62ee (git): Merge internal/intern/gc.h into internal/gc.h
eightbitraptor (Matt V-H)
05:56 PM Revision 2f7270c6 (git): Fix spelling (#7389)
John Bampton
05:29 PM Feature #19465 (Assigned): [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
Since there has been no action since @hsbt reported it, I temporarily reverted the commit at commit:526111290b2e01e798f436dfe4acc3bf10c6bbd1. Please have a look at the failure and re-push it once the issue is resolved. Thank you! k0kubun (Takashi Kokubun)
03:23 PM Feature #19465 (Closed): [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
byroot (Jean Boussier)
05:24 PM Revision 52611129 (git): Revert "reuse open(2) from rb_file_load_ok on POSIX-like system"
This reverts commit 35136e1e9c232ad7a03407b992b2e86b6df43f63.
test-spec has been failing since this revision.
.github/workflows/compilers.yml:82
https://github.com/ruby/ruby/actions/runs/4276884159/jobs/7445299562
```
env:
# Minimal...
k0kubun (Takashi Kokubun)
04:45 PM Bug #18119: Ractor crashes when instantiating classes
I can't reproduce this on 3.2.0 or 3.3.0-dev (Ubuntu 22.04 x86-64), even with GC.stress = true luke-gru (Luke Gruber)
04:12 PM Bug #19464 (Closed): YJIT miscompiles `BasicObject#__send__` to alias methods of `send`
Applied in changeset commit:git|0eb634ae73cb327ede833b72492f912792a4a9d5.
----------
YJIT: Detect and reject `send(:alias_for_send, :foo)`
Previously, YJIT failed to put the stack into the correct shape when
`BasicObject#send` calls an...
alanwu (Alan Wu)
04:12 PM Revision 0eb634ae (git): YJIT: Detect and reject `send(:alias_for_send, :foo)`
Previously, YJIT failed to put the stack into the correct shape when
`BasicObject#send` calls an alias method for the send method itself.
This can manifest as strange `NoMethodError`s in the final non-send
receiver, as [seen][1] with the...
alanwu (Alan Wu)
04:12 PM Revision 55a24f9b (git): YJIT: Reject __send__ with splat to cfunc for now
`make test-spec` revealed this issue after applying an unrelated bug
fix. A crashing case is included, though I suspect there are other
scenarios where it misbehaves. Don't compile for now.
Note that this is *not* an issue on the 3.2.x ...
alanwu (Alan Wu)
03:30 PM Feature #19377: Rename Fiber#storage to Fiber.storage
zverok (Victor Shepelev) wrote in #note-5:
> Does `Fiber[foo]` not feel weird? (For me it actually does, seems like something "global", not local to the current fiber at all)
For me no, it's actually a nice way to communicate you can...
Eregon (Benoit Daloze)
03:23 PM Revision ea830ab2 (git): [ruby/irb] Add a comment about Rails' patch on
Workspace#filter_backtrace
(https://github.com/ruby/irb/pull/526)
* Add a comment about Rails' patch on Workspace#filter_backtrace
* Update lib/irb/workspace.rb
Co-authored-by: Sorah Fukumori <sora134@gmail.com>
---------
https://gi...
st0012 (Stan Lo)
12:33 PM Feature #19458: Expose HEREDOC identifier
I have no particularly strong opinion either way.
But I wanted to comment on zverok's statement:
> [...] use the possibility to "tag" strings, and if Ruby
> ...
I agree somwhat with that opinion too.
For instance, I also suggested to ...
rubyFeedback (robert heiler)
11:07 AM Revision 0aa50a03 (git): [ruby/irb] Provide more useful message when
`IRB::Inspector#inspect_value` errors
(https://github.com/ruby/irb/pull/511)
**Before**
```
irb(main):001:0> c = Cat.new "foo"
(Object doesn't support #inspect)
=>
```
**After**
```
irb(main):001:0> c = Cat.new "foo"
An error occurre...
st0012 (Stan Lo)
10:21 AM Revision 4f611df3 (git): [ruby/reline] Fix wrong indent number in prompt. whole_lines has
duplicated line.
(https://github.com/ruby/reline/pull/460)
* whole_lines should consider prev_line_index, and must not duplicate last_line
* Add test for lines passed to dynamic prompt proc
* Refactor whole_lines parameters used in te...
tompng (tomoya ishida)
10:09 AM Revision 2cbe1f3e (git): [StepSecurity] ci: Harden GitHub Actions
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io> StepSecurity Bot
09:49 AM Revision 10a80d9d (git): Ignore test case for Kernel and IO methods
hsbt (Hiroshi SHIBATA)
09:49 AM Revision db0a4c89 (git): Prefer to use File.foreach instead of IO.foreach
hsbt (Hiroshi SHIBATA)
09:49 AM Revision d063ed12 (git): Prefer to use File.binwrite instead of IO.binwrite
hsbt (Hiroshi SHIBATA)
09:49 AM Revision 6dfdc7b2 (git): Prefer to use File.binread instead of IO.binread
hsbt (Hiroshi SHIBATA)
09:49 AM Revision d3d8cd30 (git): Prefer to use File.readlines instead of IO.readlines
hsbt (Hiroshi SHIBATA)
08:57 AM Revision ae4d8e99 (git): Rename job and workflow names
hsbt (Hiroshi SHIBATA)
08:57 AM Revision f21f5191 (git): Use matrix strategies each language
hsbt (Hiroshi SHIBATA)
08:57 AM Revision b5a1c57c (git): Merge codeql-config into codeql-analysis
hsbt (Hiroshi SHIBATA)
08:44 AM Revision 92ed8e6f (git): [ruby/reline] Fix the cause of test_yamatanooroti randomly failing
(https://github.com/ruby/reline/pull/474)
* Add repeated input-delete test that fails on HEAD
* Use raw mode while readmultiline
tompng (tomoya ishida)
07:01 AM Revision 494c274b (git): Update bundled gems list at 2023-02-27
git[bot]
03:52 AM Revision d686a45c (git): Bump github/codeql-action from 2.2.4 to 2.2.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.4 to 2.2.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
...
dependabot[bot]
02:29 AM Revision cc8329e8 (git): [ruby/tempfile] Fix inconsistency in doc of Tempfile.create
https://github.com/ruby/tempfile/commit/3f96b2ed29 Sven Schwyn
02:20 AM Revision b6704201 (git): Add all-ruby-quine as a sample code
This sample code works on all release versions of Ruby, from Ruby 0.49. mame (Yusuke Endoh)
12:26 AM Revision 2535b181 (git): Symbol#end_with? accepts Strings only
Regular expressions are not supported (same as String#end_with?). adam12 (Adam Daniels)

02/26/2023

10:05 PM Feature #19458: Expose HEREDOC identifier
My thinking (the proposal I considered submitting but didn't fully form yet) was rather that HEREdocs might create some subclass, like `TaggedString` or something (which might also be able to create by other means, say, literally `Tagged... zverok (Victor Shepelev)
05:10 PM Feature #19458: Expose HEREDOC identifier
Exposing the identifier for only heredocs seems inconsistent. However, for consistency, we could expose the identifier for all literal Ruby strings:
```ruby
'foo'.identifier # => "'"
"foo".identifier # => "\""
%[foo].identifier # ...
jeremyevans0 (Jeremy Evans)
01:36 PM Feature #19458: Expose HEREDOC identifier
> So what are you supposed to do if you wanted to include ERB in the string when you have to use ERB as the identifier?
This is a valid concern, and it doesn't have any good answer to it.
On the other hand,
1. the possibility ...
zverok (Victor Shepelev)
02:00 AM Feature #19458: Expose HEREDOC identifier
@zverok So what are you supposed to do if you wanted to include `ERB` in the string when you have to use `ERB` as the identifier? Did you fully read my comment? By the way, your first point is exactly what I mentioned. sawa (Tsuyoshi Sawada)
09:03 PM Feature #19465: [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
"nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> Issue #19465 has been updated by nobu (Nobuyoshi Nakada).
> https://bugs.ruby-lang.org/issues/19465#change-102042
>
> Seems fine.<THUMBS UP SIGN>

```...
Anonymous
08:39 PM Revision 35136e1e (git): reuse open(2) from rb_file_load_ok on POSIX-like system
When loading Ruby source files, we can save the result of
successful opens as open(2)/openat(2) are a fairly expensive
syscalls. This also avoids a time-of-check-to-time-of-use
(TOCTTOU) problem.
This reduces open(2) syscalls during `r...
Eric Wong
01:37 PM Revision 6e6992e5 (git): [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
(https://github.com/ruby/net-http/pull/127)
https://github.com/ruby/net-http/commit/07b2b88ef5
burdettelamar (Burdette Lamar)
01:17 PM Revision c8bafc3b (git): Fix autoconf RUBY_STACK_GROW_DIRECTION on ARM devices
benhamilton (Ben Hamilton)
11:17 AM Bug #19230: The openssl backend of securerandom is no longer needed
Here's actually an user running into the above bug: https://github.com/stefansundin/rssbox/issues/67, https://github.com/sinatra/sinatra/pull/1888
but removing this code would address the issue too as Sinatra has some sort of fallback...
dentarg (Patrik Ragnarsson)
04:20 AM Revision ef00c6da (git): Adjust `else` style to be consistent in each files [ci skip]
nobu (Nobuyoshi Nakada)

02/25/2023

05:54 PM Feature #19377: Rename Fiber#storage to Fiber.storage
@Eregon My argument was not about `#storage` taken alone, but about `#storage` vs `::[]` inconsistency. The inconsistency can be fixed either way (e.g. if "it may evolve", then why don't we do `Fiber.current['name']` from the very beginn... zverok (Victor Shepelev)
05:50 PM Feature #19458: Expose HEREDOC identifier
I came to the same idea as this ticket independently in a [half-joke discussion](https://bugs.ruby-lang.org/issues/19015#note-5), and I find it tempting, too. Even planned to submit my own proposal once I'll have it clearly formed in my ... zverok (Victor Shepelev)
04:50 PM Revision 672b81b0 (git): [ruby/irb] Remove unused Struct
(https://github.com/ruby/irb/pull/522)
https://github.com/ruby/irb/commit/97dae166ae
ima1zumi (Mari Imaizumi)
12:53 PM Bug #18572: Performance regression when invoking refined methods
palkan (Vladimir Dementyev) wrote in #note-4:
> As far as I understand, this line is responsible for "the 13 seconds" boot time overhead: https://github.com/ruby/ruby/blob/master/eval.c#L1342 (I was able to achieve similar results by ad...
Eregon (Benoit Daloze)
12:41 PM Feature #19450: Is there an official way to set a class name without setting a constant?
ioquatix (Samuel Williams) wrote in #note-18:
> > One requirement for that is the given name should not be a valid constant name then (not start with a uppercase letter).
> ...
It's a requirement for humans to always be able to tell th...
Eregon (Benoit Daloze)
12:07 PM Feature #19450: Is there an official way to set a class name without setting a constant?
I wondered about whether your point of class name consistent was valid, but I found cases like this:
```
irb(main):005:0> k = Class.new
=> #<Class:0x000000010488b9b8>
irb(main):006:0> K = k
=> K
irb(main):007:0> k.name
=> "K"
i...
ioquatix (Samuel Williams)
12:02 PM Feature #19450: Is there an official way to set a class name without setting a constant?
Here are some of the places in my own code I'd like to use such a feature:
- https://github.com/ioquatix/bake/blob/a571f0c47cc202a4b46a836b87b7383d84f74fa0/lib/bake/scope.rb#L30 - "Scope<path/to/file.rb>"
- https://github.com/ioquatix/...
ioquatix (Samuel Williams)
11:50 AM Feature #19450: Is there an official way to set a class name without setting a constant?
ioquatix (Samuel Williams) wrote in #note-16:
> It's already the case that `Module#name` can return a string which is not how you access that module (or class). Rails already does that for ActiveRecord models. Anyone can override that m...
Eregon (Benoit Daloze)
11:34 AM Feature #19450: Is there an official way to set a class name without setting a constant?
> The fundamental thing here is Module#name must return a String which is how to access that module, unless some part is anonymous and then of course it cannot be accessed via a constant path.
> ...
It's already the case that `Module#na...
ioquatix (Samuel Williams)
11:28 AM Feature #19450: Is there an official way to set a class name without setting a constant?
> I'm also pretty sure assigning to a constant is incompatible with Ractor in some cases..
No, modules and classes are always shared between Ractors. Assigning to a constant needs to be in the main Ractor but so does loading any code ...
Eregon (Benoit Daloze)
11:22 AM Feature #19450: Is there an official way to set a class name without setting a constant?
ioquatix (Samuel Williams) wrote in #note-13:
> An example of this is web frameworks which load files into anonymous modules, those modules can be named by path or mounted location in the web application.
Which web framework? Who wan...
Eregon (Benoit Daloze)
11:12 AM Feature #19450: Is there an official way to set a class name without setting a constant?
The use case is explained in https://bugs.ruby-lang.org/issues/19450#note-6 - to make it more descriptive when class names are printed which have anonymous ancestors. An example of this is web frameworks which load files into anonymous m... ioquatix (Samuel Williams)
11:09 AM Feature #19450: Is there an official way to set a class name without setting a constant?
What is the use-case here?
To name otherwise-anonymous test classes/modules?
Why not simply assigning them to a real constant, so their `name` is truthful and not a lie?
Having a filename in Module#name like in https://bugs.ruby-lan...
Eregon (Benoit Daloze)
10:04 AM Revision d0031db9 (git): Prefer RB_NUM2LONG for string length. (#7379)
Samuel Williams
09:34 AM Bug #19467 (Assigned): Some linear_time regexp does not match in linear time
hsbt (Hiroshi SHIBATA)
05:24 AM Bug #19467 (Closed): Some linear_time regexp does not match in linear time
`Regexp.linear_time?(/\A.*a.*x\z/) #=> true` but it does not match in linear time
~~~ruby
Regexp.linear_time? /\A(.*a.*)x\z/ #=> true
/\A(.*a.*)x\z/ =~ 'a'*100000+'y' #=> nil, processing time: 0.016995s
Regexp.linear_time? /\A.*a...
tompng (tomoya ishida)
09:04 AM Feature #19465: [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
Seems fine.👍 nobu (Nobuyoshi Nakada)
01:48 AM Feature #19465 (Assigned): [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
```
When loading Ruby source files, we can save the result of
successful opens as open(2)/openat(2) are a fairly expensive
syscalls. This also avoids a time-of-check-to-time-of-use
(TOCTTOU) problem.
This reduces open(2) syscalls...
normalperson (Eric Wong)
08:38 AM Revision d3ee9e59 (git): [ruby/stringio] Remove (newly unneeded) remarks about aliases
https://github.com/ruby/stringio/commit/60bb320477 burdettelamar (Burdette Lamar)
06:27 AM Revision f94e83fa (git): Assigning `nil` to fiber storage deletes the association. (#7378)
Also avoid allocations when looking up `Fiber#storage` if not needed. Samuel Williams
05:40 AM Revision 57bc3f2f (git): Add `IO::Buffer.string` for efficient string creation. (#7364)
Samuel Williams
04:25 AM Bug #19461 (Closed): Time.local performance tanks in forked process (on macOS only?)
I don't think we can do anything about this, so closing. ioquatix (Samuel Williams)
04:16 AM Bug #19461: Time.local performance tanks in forked process (on macOS only?)
I've submitted a bug report to Apple:
![](clipboard-202302251716-rh6ma.png)
ioquatix (Samuel Williams)
03:14 AM Feature #19466 (Closed): Class.new takes a block, why doesn't Module.new take a block?
Okay, I confirmed it's working by my own hand, haha. I must work too hard this week, my brain is not functioning correctly.
I updated the PR to take advantage of that. In fact, it was right in front of me the whole time.
https://github...
ioquatix (Samuel Williams)
03:08 AM Feature #19466: Class.new takes a block, why doesn't Module.new take a block?
Ahh, I tried this but I must have made a mistake. So why does `EnvUtil` not use this? Maybe it's legacy? ioquatix (Samuel Williams)
02:58 AM Feature #19466: Class.new takes a block, why doesn't Module.new take a block?
It does.
```ruby
A = Module.new do
def foo; "foo" end
end
class B; include A end
B.new.foo # => "foo"
```
Cf. https://ruby-doc.org/3.2.1/Module.html#method-c-new
sawa (Tsuyoshi Sawada)
02:37 AM Feature #19466 (Closed): Class.new takes a block, why doesn't Module.new take a block?
```ruby
Class.new do
#... equivalent to class_eval
end
```
So, why don't we introduce:
```ruby
Module.new do
#... equivalent to class_eval
end
```
ioquatix (Samuel Williams)
03:02 AM Misc #19429: DevMeeting-2023-03-09
- [Feature #19450] Is there an official way to set a class name without setting a constant?
- Do we accept `Class.new(superclass, name)` and `Module.new(name)` syntax?
- [Feature #19451] Extract path and line number from `SyntaxError`?...
ioquatix (Samuel Williams)
02:55 AM Feature #19440: Deprecate ThreadGroup
I don't think I have ever seen `ThreadGroup` used in practice, nor do I personally know why I'd want to use it. Therefore, I'd be okay with deprecating it. ioquatix (Samuel Williams)
 

Also available in: Atom