Project

General

Profile

Activity

From 03/08/2024 to 03/14/2024

03/14/2024

11:11 PM Revision c3887849 (git): Fix array allocation optimization for f(*a, kw: 1)
This was broken during the refactoring in 22e488464a412afa58f201c49e54773aa8011320. jeremyevans (Jeremy Evans)
10:36 PM Feature #20309: Bundled gems for Ruby 3.5
>At least it seems useful to have some data and extra details on it (the last paragraph).
I see. Thanks for your investigation.
To be precise, there wasn't time to talk about wrapper files. We only discuss about https://bugs.ruby-l...
hsbt (Hiroshi SHIBATA)
02:58 PM Feature #20309: Bundled gems for Ruby 3.5
OK, thank you. I wanted to make sure my concern on that is clear.
At least it seems useful to have some data and extra details on it (the last paragraph).
Eregon (Benoit Daloze)
10:55 AM Feature #20309: Bundled gems for Ruby 3.5
>What about yaml and readline?
There is no conclusion yet. I understood your concern. Do not rush this.
hsbt (Hiroshi SHIBATA)
10:41 AM Feature #20309: Bundled gems for Ruby 3.5
@hsbt What about [yaml](https://github.com/ruby/yaml/blob/master/lib/yaml.rb) and [readline](https://github.com/ruby/readline/blob/master/lib/readline.rb)?
I think these are not worth moving to bundled gems, i.e. the gains are (AFAIK) v...
Eregon (Benoit Daloze)
09:44 AM Feature #20309: Bundled gems for Ruby 3.5
Thanks @Eregon and @jeremyevans0 .
I mostly agreed your comments. And I discussed this at DevMeeting 2024/03/14.
* No one against about `ostruct`. I will do that.
* We should consider to run `irb` without `gem "irb"` of Gemfile un...
hsbt (Hiroshi SHIBATA)
08:44 PM Revision ed2f6852 (git): Update to ruby/spec@89175b2
Eregon (Benoit Daloze)
08:44 PM Revision 1d9f9914 (git): Update to ruby/mspec@b8f8f4e
Eregon (Benoit Daloze)
07:39 PM Bug #20340 (Closed): Ractor comments not applying to constant targets
In this example:
```ruby
C, = { foo: bar }
```
You get:
```
== disasm: #<ISeq:<main>@test.rb:1 (1,0)-(1,17)>
0000 putobject :foo ( 1)[Li]
0002 putself
0003 opt_send_witho...
kddnewton (Kevin Newton)
07:33 PM Bug #20339: Parser segfault with ractor comment
Sorry, this is actually even simpler:
```ruby
# shareable_constant_value: literal
C = { bar => baz }
```
kddnewton (Kevin Newton)
07:32 PM Bug #20339 (Closed): Parser segfault with ractor comment
```ruby
foo(
# shareable_constant_value: literal
(C = { bar => baz })
)
```
kddnewton (Kevin Newton)
07:19 PM Misc #20028: I'd like my commit bit back
(I'd like to get started triaging ruby/rdoc issues and PRs ASAP... too much bitrot) zenspider (Ryan Davis)
07:18 PM Misc #20028: I'd like my commit bit back
GAH! Took me long enough! https://github.com/ruby/git.ruby-lang.org/pull/79 ❤️ zenspider (Ryan Davis)
05:52 PM Revision c2170e5c (git): Fix typo from gloabl_object_list to global_object_list
peterzhu2118 (Peter Zhu)
05:29 PM Revision 4559a161 (git): Move gloabl_object_list from objspace to VM
This is to be consistent with the mark_object_ary that is in the VM. peterzhu2118 (Peter Zhu)
05:08 PM Revision b0be2961 (git): YJIT: Let yjit_perf.py support perf with Python disabled (#10246)
* YJIT: Let yjit_perf.py support perf with Python disabled
* Update yjit.md about perf
* Recommend the extra interface by default
k0kubun (Takashi Kokubun)
04:56 PM Revision 09d8c99c (git): Ensure test suite is compatible with --frozen-string-literal
As preparation for https://bugs.ruby-lang.org/issues/20205
making sure the test suite is compatible with frozen string
literals is making things easier.
byroot (Jean Boussier)
04:53 PM Feature #20265 (Closed): Deprecate and remove rb_newobj and rb_newobj_of
Applied in changeset commit:git|8e1831406ffd385213f67baba0d1fe6d44e9e0ea.
----------
[Feature #20265] Remove rb_newobj and RB_NEWOBJ
peterzhu2118 (Peter Zhu)
09:42 AM Feature #20265 (Assigned): Deprecate and remove rb_newobj and rb_newobj_of
Discussed at the dev meeting, and @matz said "go ahead". mame (Yusuke Endoh)
04:53 PM Revision 4e03d56e (git): [Feature #20265] Update NEWS.md
peterzhu2118 (Peter Zhu)
04:53 PM Revision ff51dc56 (git): [Feature #20265] Remove rb_newobj_of and RB_NEWOBJ_OF
peterzhu2118 (Peter Zhu)
04:53 PM Revision 8e183140 (git): [Feature #20265] Remove rb_newobj and RB_NEWOBJ
peterzhu2118 (Peter Zhu)
04:27 PM Revision bd42c172 (git): Backport #20096 to Ruby 3.3 (#9471)
Fix memory overread in registry.rb
The terminator is not actually getting filled in; we're simply passing
(two) bytes of empty memory as the NUL terminator. This can lead to
garbage characters getting written to registry values.
Fix th...
KJ Tsanaktsidis
04:27 PM Revision 606dd03e (git): [Bug #20208] Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoi… (#9791)
Revert "Set AI_ADDRCONFIG when making getaddrinfo(3) calls for outgoing conns"
This reverts commit 673ed41c81cf5a6951bcb2c3dec82d7bd6ea7440.
KJ Tsanaktsidis
04:26 PM Revision 53f0c5a4 (git): Backport #9498 to Ruby 3.3 (#9805)
Handle mmap failures for redblack tree cache
The redblack tree cache is totally optional, so if we can't allocate
room for the cache, then just pretend as if the cache is full if mmap
fails
Co-authored-by: Aaron Patterson <tenderlove@r...
krk (Kerem Kat)
04:26 PM Revision cdcabd8a (git): Backport 3.3: YJIT memory leak fix with additional CI fixes (#9841)
merge revision(s) 2cc7a56e,b0711b1,db5d9429: [Backport #20209]
YJIT: Avoid leaks by skipping objects with a singleton class
For receiver with a singleton class, there are multiple vectors YJIT can
end up retaini...
alanwu (Alan Wu)
04:20 PM Bug #20150: Memory leak in grapheme clusters
ruby_3_3 62de3eb5a2e5b1f0f1516dc99241c4c54a1bf691 merged revision(s) b3d612804946e841e47d14e09b6839224a79c1a4. naruse (Yui NARUSE)
04:09 PM Revision 161545d5 (git): [ruby/reline] Ensure compatibility with frozen string literals
(https://github.com/ruby/reline/pull/643)
Ref: https://bugs.ruby-lang.org/issues/20205
Ruby is moving forward with enabling frozen string literals
in the future.
Reline being part of the ruby-core test suite should work when
ruby is r...
Jean byroot Boussier
03:41 PM Revision d10afe03 (git): [ruby/irb] Rescue from exceptions raised by #name
(https://github.com/ruby/irb/pull/899)
* Rescue from exceptions raised by #name
Irb might terminate if the class overwrites `name` and raise errors. This commit rescue irb from termination.
* fix for other unknown patterns
https://gi...
Go
03:40 PM Revision 3822ca98 (git): [ruby/irb] Add disable_irb command to disable debug of binding.irb
(https://github.com/ruby/irb/pull/898)
* Add disable_irb command to disable debug of binding.irb
* disable_irb doesn't override Kernel.exit
Kernel.exit call is removed because disable_irb does not override Kernel.exit
and workaround t...
hogelog (Sunao Komuro)
03:15 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
Right, Range is problematic, and only Range with positive indices seems an weird restriction so I think better no Range.
`Thread.each_caller_location(1, 20)` I think there are basically no use cases for this, so I wouldn't add it to k...
Eregon (Benoit Daloze)
03:08 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
> I think omitting the first N frames is useful.
Agreed, that's the only one I want. The reason I started the issue by asking for the same parameters is purely consistency.
Now, if there are valid reasons not to support some (like ...
byroot (Jean Boussier)
02:53 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
Ah I mistyped, `caller_locations(20)` is of course just setting start, `caller_locations(0, 20)` has no problem, I'll edit my post on Redmine to use the Range form, which is a problem. Eregon (Benoit Daloze)
02:52 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
I think omitting the first N frames is useful.
However I see little reason to have a `length` or `Range`, one can just `break/return` out of the `Thread.each_caller_location`, and it seems pretty rare to need that.
So I think it's best t...
Eregon (Benoit Daloze)
02:43 PM Feature #20335: `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
Seems fine to me. Looking at the code, I don't think it would be difficult to implement. jeremyevans0 (Jeremy Evans)
09:32 AM Feature #20335 (Closed): `Thread.each_caller_location` should accept the same arguments as `caller` and `caller_locations`
`Thread.each_caller_location` was added to Ruby 3.2 as part of [Feature #16663] and is a very useful API for emitting warnings with a proper source location and similar use cases.
However in many of the cases where I used it, or seen ...
byroot (Jean Boussier)
03:11 PM Misc #20336: DevMeeting-2024-04-17
* [Feature #20300] Hash: set value and get pre-existing value in one call (eregon)
* It seems generally useful (see latest comments there).
* It is necessary for #20301 (as long as Set is implemented in Ruby, and I think it should).
Eregon (Benoit Daloze)
10:17 AM Misc #20336 (Closed): DevMeeting-2024-04-17
# The next dev meeting
**Date: 2024/04/17 13:00-17:00** (JST)
Log: *TBD*
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at the bug tracker.
- Dev meeting is a place we can ask Matz, nobu, nurse and o...
mame (Yusuke Endoh)
03:06 PM Feature #20300: Hash: set value and get pre-existing value in one call
nobu (Nobuyoshi Nakada) wrote in #note-17:
> I want `ENV.exchange_value` rather than `Hash#exchange_value`.
Agreed it's a generally useful thing (e.g. to swap an env var and later restore it).
So I think we should add it for both Hash a...
Eregon (Benoit Daloze)
03:05 PM Feature #20300: Hash: set value and get pre-existing value in one call
That implementation is incorrect (i.e. less correct than current implementation), and `Hash#exchange_value` is needed to be thread-safe for Set, see https://bugs.ruby-lang.org/issues/20301. Eregon (Benoit Daloze)
10:12 AM Feature #20300: Hash: set value and get pre-existing value in one call
Discussed at developers meeting. @shyouhei pointed out that `Set#add?` could be improved with a single lookup by looking at the change in size, without this proposal.
https://bugs.ruby-lang.org/issues/20301#note-8
@matz said that w...
mame (Yusuke Endoh)
05:22 AM Feature #20300: Hash: set value and get pre-existing value in one call
I want `ENV.exchange_value` rather than `Hash#exchange_value`. nobu (Nobuyoshi Nakada)
03:04 PM Bug #20301: `Set#add?` does two hash look-ups
That implementation using `size` is not thread-safe, even on CRuby AFAIK.
For example, if T2 calls `add?` with a new element while T1 calls `add?` with an existing element.
If T1 is just before `m = size` when T2 executes `add(o)`, the...
Eregon (Benoit Daloze)
07:15 AM Bug #20301: `Set#add?` does two hash look-ups
nobu (Nobuyoshi Nakada) wrote in #note-9:
> shyouhei (Shyouhei Urabe) wrote in #note-8:
> ...
My bad. Thank you for correction.
shyouhei (Shyouhei Urabe)
06:41 AM Bug #20301: `Set#add?` does two hash look-ups
shyouhei (Shyouhei Urabe) wrote in #note-8:
> ```ruby
> ...
The return value is inverse.
nobu (Nobuyoshi Nakada)
05:44 AM Bug #20301: `Set#add?` does two hash look-ups
Why not:
```ruby
def add?(o)
n = size
add(o)
m = size
return n == m ? self : nil
end
```
This implementation involves only one hash lookup.
shyouhei (Shyouhei Urabe)
02:40 PM Bug #20225: Inconsistent behavior of regex matching for a regex has a null loop
What is the decision, to return 0 in both cases (like TruffleRegex behaves), and fix the behavior in Onigmo?
As @jirkamarsik explained above, that is the correct and intended behavior for the null loop optimization, which like any opt...
Eregon (Benoit Daloze)
09:42 AM Bug #20225: Inconsistent behavior of regex matching for a regex has a null loop
This was discussed at the February dev meeting and @matz said "give it a try." @make_now_just Can you proceed it? mame (Yusuke Endoh)
02:18 PM Revision fafe5db7 (git): merge revision(s) b3d612804946e841e47d14e09b6839224a79c1a4: [Backport #20150] (#10253)
Fix memory leak in grapheme clusters
[Bug #20150]
String#grapheme_cluters and String#each_grapheme_cluster leaks memory
because if the string is not UTF-8, then the created regex will not
be freed.
...
NARUSE, Yui
02:15 PM Bug #20338: certain **kwsplat calls have regressed allocations over past few ruby releases
Ah nope never mind, that PR is about methods called with a kwarg splat, which your example is not doing. kjtsanaktsidis (KJ Tsanaktsidis)
02:12 PM Bug #20338: certain **kwsplat calls have regressed allocations over past few ruby releases
I haven’t looked at this at all myself, but it tingled my “this is familiar” sense. Is this the same problem as https://github.com/ruby/ruby/pull/10151 ? kjtsanaktsidis (KJ Tsanaktsidis)
02:05 PM Bug #20338 (Closed): certain **kwsplat calls have regressed allocations over past few ruby releases
Given this script:
```
class Foo
def initialize(**kwargs)
end
end
class Bar
def initialize(y:)
end
end
b = GC.stat[:total_allocated_objects]
1000.times {
Foo.new(y:1)
}
p GC.stat[:total_allocated_objects]-b
...
fablestales (Fable Tales)
01:12 PM Feature #20331: Should parser warn hash duplication and when clause?
Thank you for the response Matz. I just want to clarify what you're asking for the implementation to be, based on what you're saying (let me know if I misunderstand).
> parser should warn only minimal and apparent cases, no base conve...
kddnewton (Kevin Newton)
08:07 AM Feature #20331: Should parser warn hash duplication and when clause?
1. parser should warn only minimal and apparent cases, no base conversion, no bignum allocation. Handling `_` in the number literals is on the border.
2. I don't want to add complicated checks since prism may be used for small devices t...
matz (Yukihiro Matsumoto)
01:50 AM Feature #20331: Should parser warn hash duplication and when clause?
I understand this ticket as "should the parser be responsible for parse integer values" (because if you have the integer values, these warnings are trivial to implement). I think the parser should absolutely be responsible for parsing in... kddnewton (Kevin Newton)
01:08 PM Bug #20334: Time.to_i truncates a fractional timestamp instead of rounding up
Bit vague to say in the docs that `to_i` and `to_f` "may return a value that rounds or truncates". Why not just say it truncates? Regardless, I can live with it :) werelnon (Malcolm Patterson)
01:37 AM Bug #20334 (Feedback): Time.to_i truncates a fractional timestamp instead of rounding up
It is the intended behavior.
http://ruby-doc.com/3.2.2/Time.html#class-Time-label-Epoch+Seconds
> Other retrieval methods such as `Time#to_i` and `Time#to_f`
> ...
nobu (Nobuyoshi Nakada)
12:26 AM Bug #20334 (Feedback): Time.to_i truncates a fractional timestamp instead of rounding up
Simple steps that can be executed in a ruby interactive shell
```
irb(main):007> t = Time.now
=> 2024-03-14 00:23:55.983885525 +0000
irb(main):008> t.to_f
=> 1710375835.9838855
irb(main):009> t.to_i
=> 1710375835
```
Based o...
werelnon (Malcolm Patterson)
01:03 PM Bug #20090: Anonymous arguments are now syntax errors in unambiguous cases
ruby_3_3 2a84aaf4a8c8d6d6bbb09416711922532b0033fe merged revision(s) 596db9c1f486d6609a4e97d82c8c71b54609fb6f. naruse (Yui NARUSE)
01:02 PM Bug #20198: Threaded DNS resolver does not propagate errno to the calling thread
ruby_3_3 a889304fed63c3206f27d614ab75219271fb4ca9 merged revision(s) 6c0e58a54e3fda604386d9c409e2a9998bbc9352. naruse (Yui NARUSE)
01:02 PM Bug #20161: Memory leak in regexp grapheme clusters
ruby_3_3 577f9c7a8334bb33512f01e7db95f6fb15e280b2 merged revision(s) 37ed86fd3c798e298fad9db6e7df1f3f45e1e03b. naruse (Yui NARUSE)
12:33 PM Feature #20306 (Closed): Add rb_free_at_exit_p
Applied in changeset commit:git|83618f2cfa004accdd1514de7dcbba291aa7e831.
----------
[Feature #20306] Implement ruby_free_at_exit_p
ruby_free_at_exit_p is a way for extensions to determine whether they
should free all memory at shutdown.
peterzhu2118 (Peter Zhu)
09:43 AM Feature #20306 (Assigned): Add rb_free_at_exit_p
Discussed at the dev meeting, and @matz said "go ahead".
mame (Yusuke Endoh)
12:33 PM Revision 83618f2c (git): [Feature #20306] Implement ruby_free_at_exit_p
ruby_free_at_exit_p is a way for extensions to determine whether they
should free all memory at shutdown.
peterzhu2118 (Peter Zhu)
12:06 PM Misc #20320: Using OSU Open Source Lab native ppc64le/s390x CI services trigged on pull-requests
> I opened the following issue ticket to request adding Ubuntu jammy container images. In my understanding, maybe we need the container images to run our tests on the environment.
> ...
What I said above was my mistake. According to the...
jaruga (Jun Aruga)
11:25 AM Bug #20337: Complex#inspect mutates the string returned by `real.inspect`
Same for Complex#to_s. Eregon (Benoit Daloze)
11:23 AM Bug #20337 (Closed): Complex#inspect mutates the string returned by `real.inspect`
```
irb(main):001:0> n = Numeric.new
=> #<Numeric:0x00007f81b2308578>
irb(main):004:0> class Numeric; def inspect = super.freeze; end
=> :inspect
irb(main):006:0> Complex(n, 1).inspect
(irb):6:in `inspect': can't modify frozen Stri...
Eregon (Benoit Daloze)
10:47 AM Bug #20333: segfault while running my tests
Thanks @shyouhei that seems to be it dorianmariefr (Dorian Marié)
10:38 AM Feature #13557 (Closed): there's no way to pass backtrace locations as a massaged backtrace
Applied in changeset commit:git|315bde5a0f95562f58405a43456ec6715ef20d32.
----------
`Exception#set_backtrace` accept arrays of `Backtrace::Location`
[Feature #13557]
Setting the backtrace with an array of strings is lossy. The result...
byroot (Jean Boussier)
10:38 AM Revision 315bde5a (git): `Exception#set_backtrace` accept arrays of `Backtrace::Location`
[Feature #13557]
Setting the backtrace with an array of strings is lossy. The resulting
exception will return nil on `#backtrace_locations`.
By accepting an array of `Backtrace::Location` instance, we can rebuild
a `Backtrace` instance...
byroot (Jean Boussier)
10:17 AM Misc #20281 (Closed): DevMeeting-2024-03-14
mame (Yusuke Endoh)
10:08 AM Feature #4247 (Rejected): New features for Array#sample, Array#choice
We discussed this at the dev meeting. No one remembered the discussion from over 10 years ago, so we discussed it anew and concluded that this was a no-go.
A naive API design could be `ary.sample(k, weights: [Float])`, but this would ...
mame (Yusuke Endoh)
09:55 AM Revision 2a84aaf4 (git): Fix test session reuse but expire (#9824) (#10250)
merge revision(s) 596db9c1f486d6609a4e97d82c8c71b54609fb6f: [Backport #20090]
[Feature #19370] Blocks without anonymous parameters should not
affect
---
parse.y | 4 ++--
test/...
NARUSE, Yui
09:45 AM Feature #20261: Add symbol synonyms for '' and nil for IO method line separator arguments
Discussed at the dev meeting, and @matz (Yukihiro Matsumoto) said he wants to take time to consider it. No conclusion is reached. mame (Yusuke Endoh)
09:44 AM Bug #20310: ASAN fake stacks need to be marked during GC for non-current execution context
Discussed at the dev meeting, and @ko1 said the PR looks good to him.
mame (Yusuke Endoh)
09:42 AM Revision a889304f (git): merge revision(s) 6c0e58a54e3fda604386d9c409e2a9998bbc9352: [Backport #20198] (#10252)
Make sure the correct error is raised for EAI_SYSTEM resolver fail
In case of EAI_SYSTEM, getaddrinfo is supposed to set more detail in
errno; however, because we call getaddrinfo on a thread now, and errno
is th...
NARUSE, Yui
09:40 AM Bug #20203: `TestEnumerable` test failures with GCC 14
This was discussed at the February dev meeting and @matz said "give it a try." @alanwu Can you please discuss with @ko1 and proceed it? mame (Yusuke Endoh)
09:39 AM Feature #20244 (Closed): Show the conflicting another chdir block
Applied in changeset commit:git|8fe86feecdcd0318c9ec88c10d2698beb9878bee.
----------
[Feature #20244] Extract `chdir_lock` and its stuffs
nobu (Nobuyoshi Nakada)
09:38 AM Revision 72d04bb0 (git): Disable to run appveyor anymore
[Feature #19982] hsbt (Hiroshi SHIBATA)
09:38 AM Revision 8c4b5ac5 (git): Skip AppVeyor and GitHub if only other CI files are changed
nobu (Nobuyoshi Nakada)
09:33 AM Revision 5326337d (git): [Feature #20244] Issue a single `Warning.warn` call
Make the entire series of message lines a multiline string so that the
`Warning.warn` hook can receive them in a single call.
nobu (Nobuyoshi Nakada)
09:33 AM Revision 67fe0478 (git): [Feature #20244] Register global variable for another thread
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> nobu (Nobuyoshi Nakada)
09:33 AM Revision 4bb8f858 (git): [Feature #20244] Show the conflicting another chdir block
nobu (Nobuyoshi Nakada)
09:33 AM Revision 8fe86fee (git): [Feature #20244] Extract `chdir_lock` and its stuffs
nobu (Nobuyoshi Nakada)
09:26 AM Feature #20293 (Closed): Add `Warning.categories` method that returns the warning category names
Applied in changeset commit:git|1ad366134ded1667745dd9fa70919051869f8d6c.
----------
[Feature #20293] Add `Warning.categories`
nobu (Nobuyoshi Nakada)
08:58 AM Feature #20293: Add `Warning.categories` method that returns the warning category names
https://github.com/ruby/ruby/pull/10069 nobu (Nobuyoshi Nakada)
09:04 AM Feature #20202 (Rejected): Memoized endless method definitions
I don't accept this proposal for several reasons:
* I don't see significant use-case
* method set for a class should be stable for consistency/understandability
* fragile method set could be bad for object shape and method caching
...
matz (Yukihiro Matsumoto)
08:57 AM Feature #20080 (Feedback): Introduce #bounds method on Range
mame (Yusuke Endoh)
08:56 AM Revision 1ad36613 (git): [Feature #20293] Add `Warning.categories`
nobu (Nobuyoshi Nakada)
08:49 AM Bug #20307 (Closed): `Hash#update` from compare_by_identity hash can have unfrozen string keys
Applied in changeset commit:git|f36a71e26995b69ff72bc132bbcf40ad89571414.
----------
[Bug #20307] Fix `Hash#update` to make frozen copy of string keys
nobu (Nobuyoshi Nakada)
08:49 AM Revision f36a71e2 (git): [Bug #20307] Fix `Hash#update` to make frozen copy of string keys
nobu (Nobuyoshi Nakada)
08:49 AM Revision cd774f4a (git): Extract `RHASH_STRING_KEY_P`
nobu (Nobuyoshi Nakada)
08:49 AM Revision c1279a3d (git): Extract `RHASH_IDENTHASH_P`
nobu (Nobuyoshi Nakada)
08:41 AM Revision fdf1fa5f (git): Revert "Warn ostruct for Ruby 3.5"
This reverts commit 1acbdc76d6ee73bc2a4d490f8809bd128abafc1f.
I need to remove ostruct from Rake or fix bundler example.
https://github.com/ruby/ruby/actions/runs/8277371220/job/22647605911#step:11:3428
hsbt (Hiroshi SHIBATA)
08:27 AM Bug #20224: Backport https://github.com/ruby/ruby/pull/9634 to Ruby 3.3
Backported to 3.3 by f8f0d342e48a38caac6d32b438c145bb581a51e6 naruse (Yui NARUSE)
08:07 AM Revision 1acbdc76 (git): Warn ostruct for Ruby 3.5
hsbt (Hiroshi SHIBATA)
07:53 AM Revision 577f9c7a (git): Backport 37ed86fd3c798e298fad9db6e7df1f3f45e1e03b (#10248)
merge revision(s) 37ed86fd3c798e298fad9db6e7df1f3f45e1e03b: [Backport #--ticket=20161]
Fix memory leak in regexp grapheme clusters
[Bug #20161]
The cc->mbuf gets overwritten, so we need to free it to not leak m...
NARUSE, Yui
07:28 AM Revision d5e9942a (git): Update bundled gems list at 04fc9f87be8dd352e7d892b0d6b085 [ci skip]
git[bot]
07:27 AM Revision 04fc9f87 (git): Use released version of bigdecimal
hsbt (Hiroshi SHIBATA)
06:39 AM Bug #19231: Integer#step and Float::INFINITY - inconsistent behaviour when called with and without a block
https://github.com/nobu/ruby/tree/arith_seq-infinite-end nobu (Nobuyoshi Nakada)
05:35 AM Bug #19231: Integer#step and Float::INFINITY - inconsistent behaviour when called with and without a block
Weird a little.
```ruby
seq = 0.step(Float::INFINITY, 10)
p seq.class #=> Enumerator::ArithmeticSequence
p seq.first #=> 0
p seq.first(1) #=> [0.0]
```
nobu (Nobuyoshi Nakada)
06:12 AM Revision 1cffaf1c (git): minitest-5.22.3 tag is not available yet
hsbt (Hiroshi SHIBATA)
06:11 AM Feature #15554: warn/error passing a block to a method which never use a block
Matz accepted to try it with `-w` (WOW!) so I'll make a patch. ko1 (Koichi Sasada)
05:22 AM Revision cc141b61 (git): Update bundled gems list at 07b40044ada7f98f67b3807dddeda7 [ci skip]
git[bot]
05:21 AM Revision 07b40044 (git): Use released version of minitest
hsbt (Hiroshi SHIBATA)
04:30 AM Revision 578f96af (git): [ruby/stringio] [DOC] Package rdoc files
https://github.com/ruby/stringio/commit/8522c90e4b nobu (Nobuyoshi Nakada)
04:30 AM Revision c913f334 (git): [ruby/stringio] [DOC] Add missing documents
https://github.com/ruby/stringio/commit/9cc1dfa19c nobu (Nobuyoshi Nakada)
04:30 AM Revision 35706c60 (git): [ruby/stringio] [DOC] Add rdoc task
https://github.com/ruby/stringio/commit/5dd52d4aec nobu (Nobuyoshi Nakada)
04:19 AM Revision b01d319e (git): [ruby/fcntl] [DOC] Package files for RDoc
https://github.com/ruby/fcntl/commit/b946e505f1 nobu (Nobuyoshi Nakada)
04:01 AM Revision e394f553 (git): [ruby/fcntl] [DOC] Package document files
https://github.com/ruby/fcntl/commit/ed2d725505 nobu (Nobuyoshi Nakada)
03:49 AM Revision 4ae67b1a (git): [ruby/fcntl] [DOC] Add missing documents
https://github.com/ruby/fcntl/commit/a201ed6682 nobu (Nobuyoshi Nakada)
03:49 AM Revision 085daf48 (git): [ruby/fcntl] [DOC] Add task and files for RDoc
https://github.com/ruby/fcntl/commit/1c7c70fa5d nobu (Nobuyoshi Nakada)
03:49 AM Revision 5fe1853e (git): [ruby/fcntl] Reduce duplicate `O_ACCMODE` definitions
https://github.com/ruby/fcntl/commit/6a6442a7f8 nobu (Nobuyoshi Nakada)
03:49 AM Revision d49b4156 (git): [ruby/fcntl] [DOC] Remove redundant directives
https://github.com/ruby/fcntl/commit/a99909a90f nobu (Nobuyoshi Nakada)
01:37 AM Bug #20319: Singleton class is being frozen lazily in some cases
I looked into this and the current behavior is deliberate, as there is a comment stating `should not propagate to meta-meta-class` (see `rb_freeze_singleton_class` definition in `class.c`). See related commit commit:d9a597408f0f192ff25ab... jeremyevans0 (Jeremy Evans)

03/13/2024

11:01 PM Revision 00c32f60 (git): [PRISM] Do not send numbered parameters into eval
kddnewton (Kevin Newton)
11:01 PM Revision 2f8cbd64 (git): [PRISM] Handle ambiguous_param0 for it and numbered parameters
kddnewton (Kevin Newton)
11:01 PM Revision 7c9e6eab (git): Handle nth ref too big
kddnewton (Kevin Newton)
06:50 PM Revision 42bfbe9a (git): Remove unused size_pool_edge_names
peterzhu2118 (Peter Zhu)
06:50 PM Revision 76f9cfd0 (git): [DOC] Array doc (#10199)
burdettelamar (Burdette Lamar)
06:35 PM Revision 2cfcebb2 (git): [ruby/prism] Warn for maximum number variables
https://github.com/ruby/prism/commit/2cdbf81c95 kddnewton (Kevin Newton)
06:25 PM Revision f0b5d0ad (git): [PRISM] Turn on more tests
kddnewton (Kevin Newton)
06:24 PM Revision fa009e39 (git): [PRISM] Static literal strings should be fstrings
kddnewton (Kevin Newton)
06:13 PM Revision e6a1baad (git): [PRISM] Fix compiling duplicated keywords
kddnewton (Kevin Newton)
05:35 PM Revision a5ac27e9 (git): [ruby/prism] Turn on heredocs nested test for `Prism::Translation::Parser`
This PR enables the heredocs_nested.txt that was previously skipped testing.
https://github.com/ruby/prism/commit/9c54f7f10b
koic (Koichi ITO)
05:00 PM Revision c17f33aa (git): [ruby/prism] Only use e suffix for floats if followed by +, -, or digit
https://github.com/ruby/prism/commit/164de502c9 kddnewton (Kevin Newton)
04:51 PM Revision bf17093a (git): [ruby/prism] Fix diagnostic incompatibility for `Prism::Translation::Parser`
In the case of the `**` and `&` ambiguous prefixes, incompatibilities
remained among https://github.com/ruby/prism/issues/2513.
https://github.com/ruby/prism/commit/3b8b231aae
koic (Koichi ITO)
04:22 PM Revision 207b0023 (git): YJIT: Fallback cfunc varg splat for ruby2_keywords (#10226)
k0kubun (Takashi Kokubun)
04:19 PM Revision c843afbf (git): Chomp last punctuations from descriptions for `-h`
The following parts will not be shown for `-h` option. And not to
reach 80 columns. Some terminal emulators (Windows command prompt at
least) wrap the cursor to the next line when reaching the rightmost
column, before exceeding.
nobu (Nobuyoshi Nakada)
04:06 PM Revision a05dfbd4 (git): [PRISM] Remove ssize_t definition from prism
kddnewton (Kevin Newton)
04:06 PM Revision 4dd9602c (git): [ruby/prism] Remove ssize_t usage
https://github.com/ruby/prism/commit/64c4f1268b kddnewton (Kevin Newton)
04:05 PM Revision 572e7915 (git): [ruby/prism] FSL follow-up
https://github.com/ruby/prism/commit/097fd2a54f kddnewton (Kevin Newton)
04:03 PM Revision 53a77d9b (git): [ruby/prism] Change `frozen_string_literal` to be a tri-state
An explicit `false` is not equivalent to the comment being missing,
because the default can be switched with a runtime flag:
```bash
$ ruby --enable-frozen-string-literal -e 'p "foo".frozen?'
true
```
https://github.com/ruby/prism/comm...
byroot (Jean Boussier)
04:02 PM Revision 0f076fa5 (git): [ruby/prism] Fix an AST and token incompatibility for `Prism::Translation::Parser`
This PR fixes an AST and token incompatibility between Parser gem and `Prism::Translation::Parser`
for empty xstring literal.
## Parser gem (Expected)
```console
$ bundle exec ruby -Ilib -rparser/ruby33 -ve \
'buf = Parser::Source::Buf...
koic (Koichi ITO)
03:47 PM Revision eb408228 (git): [ruby/openssl] test_provider.rb: Make a legacy provider test optional.
In some cases such as OpenSSL package in FreeBSD[1], the legacy provider is not
installed intentionally. So, we omit a test depending the legacy provider if the
legacy provider is not loadable.
For the test_openssl_provider_names test, ...
Jun Aruga
03:47 PM Revision 17179142 (git): [ruby/openssl] Revert "omit tests related legacy provider"
This reverts commit https://github.com/ruby/openssl/commit/9b7543d58869.
The case not providing the legacy provider can happen not only in FreeBSD but
also in other platforms. The fix is addressed in the next commit.
https://github.com...
Jun Aruga
03:19 PM Revision dd5e625d (git): [ruby/openssl] test_asn1.rb: Remove the assertions of the time string format without second.
This commit fixes the following errors in the tests.
Because the OpenSSL project changed the code to make the time string format
without second invalid. So, we drop the assertions.
```
1) Error: test_generalizedtime(OpenSSL::TestASN1): ...
Jun Aruga
02:06 PM Revision 22217e70 (git): [PRISM] Handle parentheses in patterns in prism
kddnewton (Kevin Newton)
01:55 PM Revision c6089b56 (git): Don't allow SHAPE_T_OBJECT in rb_shape_alloc_new_child
peterzhu2118 (Peter Zhu)
01:55 PM Revision 88373fe2 (git): Update cruby_bindings.inc.rs
peterzhu2118 (Peter Zhu)
01:55 PM Revision 3896f994 (git): Make special const and too complex shapes before T_OBJECT shapes
peterzhu2118 (Peter Zhu)
01:55 PM Revision 6b0434c0 (git): Don't create per size pool shapes for non-T_OBJECT
peterzhu2118 (Peter Zhu)
01:55 PM Revision 6ad347a1 (git): Don't directly read the SIZE_POOL_COUNT in shapes
This removes the assumption about SIZE_POOL_COUNT for shapes. peterzhu2118 (Peter Zhu)
01:52 PM Revision d1eaa97e (git): [ruby/prism] Track parentheses in patterns
https://github.com/ruby/prism/commit/62db99f156 kddnewton (Kevin Newton)
01:20 PM Revision 3f8ef7ff (git): [ruby/stringio] Define `StringIO::MAX_LENGTH`
https://github.com/ruby/stringio/commit/0205bd1c86 nobu (Nobuyoshi Nakada)
01:05 PM Revision 2fc551e3 (git): Simplify NEWOBJ_OF macro
peterzhu2118 (Peter Zhu)
12:38 PM Revision 5fa28ce0 (git): [ruby/prism] Warn `&` interpreted as argument prefix
This PR makes `Prism` warn `&` interpreted as argument prefix.
This carries a similar meaning to the following Ruby warning:
```console
$ ruby -cwe "foo &bar"
-e:1: warning: `&' interpreted as argument prefix
Syntax OK
```
Previously, ...
koic (Koichi ITO)
12:38 PM Revision 824e3e6c (git): [ruby/prism] Warn `**` interpreted as argument prefix
This PR makes Prism warn `**` interpreted as argument prefix.
This carries a similar meaning to the following Ruby warning:
```console
$ ruby -cwe "foo **bar"
-e:1: warning: `**' interpreted as argument prefix
Syntax OK
```
Previously,...
koic (Koichi ITO)
11:34 AM Revision 7eea268b (git): [ruby/prism] Fix an AST incompatibility for `Prism::Translation::Parser`
Fixes ruby/prism#2480.
This PR fixes an AST incompatibility between Parser gem and `Prism::Translation::Parser`
for xstring literal with line breaks.
The following case in ruby/prism#2480 has already been addressed in ruby/prism#2576:
...
koic (Koichi ITO)
11:03 AM Bug #20333 (Third Party's Issue): segfault while running my tests
Looking at your crash.log, it seems pg_ext is causing the process termination. After googling around it seems a similar issue is reported to the gem: https://github.com/ged/ruby-pg/issues/311 Not sure if this is the exact problem you a... shyouhei (Shyouhei Urabe)
10:41 AM Bug #20333: segfault while running my tests
Happens when I run `rake` but not `rails test`
Rakefile is
```
require_relative "config/application"
Rails.application.load_tasks
```
dorianmariefr (Dorian Marié)
10:38 AM Bug #20333 (Third Party's Issue): segfault while running my tests
No sure how to debug it, I had a segfault while running the tests, maybe you will find it useful. dorianmariefr (Dorian Marié)
10:00 AM Feature #20329: Clean up `--dump` sub-options
I don't feel particularly strongly about this, but something about have `+-` in the argument feels a little clunky to me.
I understand the desire to not change the existing options like `--dump=insns`, and that we've got ourselves int...
eightbitraptor (Matt V-H)
08:55 AM Feature #20331: Should parser warn hash duplication and when clause?
> then it's important to show warnings to the user without running the code.
Indeed. But compiling is not running. That said, I see how this would force language servers to have Ruby around, and some may want to implement a Ruby langu...
byroot (Jean Boussier)
08:21 AM Feature #20331: Should parser warn hash duplication and when clause?
As a language user, I would expect the parser to be able to warn about the keys that are _literally_ same (i.e. same parser nodes), like `{10.2r => :a, ... 10.2r => :b}` or (obviously more frequently) `{a: 1, .... a: 2}`, but I wouldn't ... zverok (Victor Shepelev)
12:55 AM Feature #20331: Should parser warn hash duplication and when clause?
I think it's important for the parser to expose these warnings. If someone uses the parser / AST for building a language server, then it's important to show warnings to the user _without_ running the code.
In general, I think it's imp...
tenderlovemaking (Aaron Patterson)
08:39 AM Bug #20188 (Closed): `Module#const_source_location` returns wrong information when real constant was defined but autoload is still ongoing
Applied in changeset commit:git|a5c5f83b24a1b7024d4e7fe3bbce091634da53b2.
----------
Make `const_source_location` return the real constant as soon as defined
[Bug #20188]
Ref: https://github.com/fxn/zeitwerk/issues/281#issuecomment-18...
byroot (Jean Boussier)
08:39 AM Revision a5c5f83b (git): Make `const_source_location` return the real constant as soon as defined
[Bug #20188]
Ref: https://github.com/fxn/zeitwerk/issues/281#issuecomment-1893228355
Previously, it would only return the real constant location once the
autoload was fully completed.
byroot (Jean Boussier)
04:46 AM Revision 0b7487b4 (git): [ruby/stringio] Various cleanup for JRuby ext
(https://github.com/ruby/stringio/pull/85)
* Fix compile warnings on latest Java.
* Adjust one test for JRuby erroring on bad pos= value.
* Replace hard JVM synchronization with a spin lock.
* Avoid duplicate reads of state fields where...
headius (Charles Nutter)
03:38 AM Revision 8c81a6bd (git): Bump actions/checkout in /.github/actions/setup/directories
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http...
dependabot[bot]
03:36 AM Revision 7de60d6b (git): Do not fail launchable verify command
ono-max (Naoto Ono)
03:13 AM Revision 5732e83c (git): Bump github/codeql-action from 3.24.6 to 3.24.7
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.6 to 3.24.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md...
dependabot[bot]
02:28 AM Revision dec2a819 (git): `--dump=prism_parsetree` is no longer provided
Since it did not make sense without `--parser=prism` option, just a
duplication. Now it is `--parser=prism --dump=parsetree`.
nobu (Nobuyoshi Nakada)
01:40 AM Revision a6582ac9 (git): [ruby/prism] Allow newline before block locals
https://github.com/ruby/prism/commit/1d4df7d874 kddnewton (Kevin Newton)
01:26 AM Misc #20281: DevMeeting-2024-03-14
* [Feature #20024] SyntaxError metadata
* Can we add some information to the syntax error about what kind of error produced it?
* What is a good API? (The discussion on the ticket says a symbol for `:type`.)
* [Misc #20238] Use pr...
kddnewton (Kevin Newton)
01:18 AM Misc #20201 (Rejected): Should `opt_reverse` be renamed?
kddnewton (Kevin Newton)

03/12/2024

10:29 PM Revision 248cf0e4 (git): [ruby/prism] Move index tracking into a call node flag
https://github.com/ruby/prism/commit/2a2e216558 kddnewton (Kevin Newton)
10:29 PM Revision e914fa0d (git): [ruby/prism] Add warning for chained comparisons
https://github.com/ruby/prism/commit/f9f3620d44 kddnewton (Kevin Newton)
10:29 PM Revision 157733b1 (git): [ruby/prism] Add whitespace warnings
https://github.com/ruby/prism/commit/01d137a0cb kddnewton (Kevin Newton)
10:29 PM Revision 5c848505 (git): [ruby/prism] Warnings for incorrect character literal syntax
https://github.com/ruby/prism/commit/909508296e kddnewton (Kevin Newton)
09:25 PM Feature #20276: Introduce Fiber interfaces for Blocking operations on Ractors
If I had to take a guess, I'd say it's a bug with waiting on a Ractor while handling signals? ioquatix (Samuel Williams)
05:00 AM Feature #20276: Introduce Fiber interfaces for Blocking operations on Ractors
On a side note, I may have unintentionally discovered an IRB bug in the process. If you run the above in IRB and use Ctrl-C to exit, IRB hangs and becomes unresponsive. forthoney (Seong-Heon Jung)
04:58 AM Feature #20276: Introduce Fiber interfaces for Blocking operations on Ractors
ioquatix (Samuel Williams) wrote in #note-4:
> I support this proposal.
> ...
Tested on locally and it seems to work, at least with Async. Here's my code.
```ruby
Async do |task|
1.upto(3) do
r = Ractor.new do
Ractor.r...
forthoney (Seong-Heon Jung)
08:44 PM Revision 22708be0 (git): Revisions for #10198
This fixes some inconsistencies introduced by that PR. k0kubun (Takashi Kokubun)
07:14 PM Revision 19da3b4e (git): Revisions for help text (#10198)
burdettelamar (Burdette Lamar)
06:06 PM Revision 97b5f35a (git): Do not fail CI when Launchable fails
It seems to randomly fail:
```
+ launchable verify
Organization: 'ruby'
Workspace: 'ruby'
Proxy: None
Platform: 'macOS-12.7.3-x86_64-i386-64bit'
Python version: '3.12.2'
Java command: 'java'
launchable version: '1.83.0'
Authentication f...
k0kubun (Takashi Kokubun)
06:06 PM Bug #20332 (Feedback): After upgrading to ruby v 3.2.3 rb_scan_args() skips argument value

Hi,
Note: I am not an expert at ruby.
I am working on ibm_db gem, its an adapter developed using ruby C extension, which helps ruby & rails applications to connect to DB2 database.
Here is a github link for its source https://...
praveenrocket (Praveen N)
06:02 PM Revision c3915a07 (git): Skip a flaky GC.compact test for YJIT
This test has failed without YJIT too:
https://rubyci.s3.amazonaws.com/debian11/ruby-master/log/20240301T063003Z.fail.html.gz
However, it somehow fails more often on "YJIT Ubuntu / check RUSTC='rustc +1.58.0'" job.
Nobody is actively l...
k0kubun (Takashi Kokubun)
06:02 PM Revision a9eb0400 (git): Check what actually needs to be checked
RubyVM::YJIT is conditionally defined, depending on --enable-yjit.
However, RubyVM::YJIT.enabled? is always defined as long as RubyVM::YJIT
is defined, so it seems weird to check RubyVM::YJIT.enabled? instead of
RubyVM::YJIT.
k0kubun (Takashi Kokubun)
05:38 PM Feature #20298: Introduce `Time()` type-cast / constructor.
To give some outside perspective, Rust often uses `from` to convert from a type to another. This could be one option for us
```rb
Time.from(whatever)
```
matheusrich (Matheus Richard)
05:34 PM Feature #20318: Pattern matching `case ... in` support for triple-dot arguments
@mame I understand the example is contrived, but even the core library does different things with different arguments. Let's take [`Random.rand`](https://docs.ruby-lang.org/en/3.3/Random.html#method-c-rand) as an example:
```rb
Random.r...
matheusrich (Matheus Richard)
03:29 AM Feature #20318: Pattern matching `case ... in` support for triple-dot arguments
I strongly feel "bad smell" for this proposal.
In principle, one method should do one thing.
But this syntax introduces a completly different branching depending on the arguments, which could encourage a weird method behavior.
In fa...
mame (Yusuke Endoh)
05:34 PM Revision 5d71880d (git): Embed manifest with VS2013 or later
Since VS2013, `link.exe` supports `-manifest:embed` option.
[`/MANIFEST` (Create side-by-side assembly manifest)](https://learn.microsoft.com/en-us/cpp/build/reference/manifest-create-side-by-side-assembly-manifest?view=msvc-170&viewFall...
nobu (Nobuyoshi Nakada)
05:33 PM Revision f8cab4ef (git): [ruby/prism] Fix a token incompatibility for `Prism::Translation::Parser::Lexer`
In practice, the `BACKTICK` is mapped either as `:tXSTRING_BEG` or `:tBACK_REF2`.
The former is used in xstrings like `` `foo` ``, while the latter is utilized as
a back reference in contexts like `` A::` ``.
This PR will make correction...
koic (Koichi ITO)
05:32 PM Revision 83790e5f (git): [ruby/prism] Consolidate warnings for conditional predicates
* Also add warnings for literals in predicates
* Also create flip-flops in while/until
https://github.com/ruby/prism/commit/a6b5c523c2
kddnewton (Kevin Newton)
05:20 PM Revision a17a33b3 (git): [ruby/prism] Follow ruby/prism#2581
Due to ruby/prism#2581, the test case for non_alphanumeric_methods.txt has also been restored.
It also solved issues with `def self.`' not limited to constants for `tBACK_REF2` token.
```console
$ bundle exec ruby -Ilib -rprism -rprism/...
koic (Koichi ITO)
03:32 PM Revision 1e886c04 (git): [ruby/prism] Fix some whitequark/parser lexer compatibilities
https://github.com/ruby/prism/commit/34e521d071 kddnewton (Kevin Newton)
03:28 PM Revision 149a4499 (git): Remove unused function in parse.y
parse.y:2624:1: warning: unused function 'rb_parser_ary_new' peterzhu2118 (Peter Zhu)
03:17 PM Revision c637f53e (git): [ruby/prism] Fix a token incompatibility for `Prism::Translation::Parser::Lexer`
This PR fixes a token incompatibility between Parser gem and `Prism::Translation::Parser` for `tBACK_REF2`:
## Parser gem (Expected)
Returns `tBACK_REF2` token:
```console
$ bundle exec ruby -Ilib -rparser/ruby33 -ve \
'buf = Parser::...
koic (Koichi ITO)
02:48 PM Revision a41649bf (git): [ruby/prism] Follow #2579
Due to #2579, the test case for range_begin_open_inclusive.txt has also been restored.
https://github.com/ruby/prism/commit/da173526a1
koic (Koichi ITO)
02:15 PM Revision 1ed6b7b4 (git): [ruby/prism] Restore some skipped heredoc tests for `Prism::Translation::Parser`
This PR restores some heredoc tests that have already passed
for `Prism::Translation::Parser`.
https://github.com/ruby/prism/commit/297b9e2380
koic (Koichi ITO)
02:15 PM Revision 72a57076 (git): [ruby/prism] Fix a token incompatibility for `Prism::Translation::Parser::Lexer`
This PR fixes a token incompatibility between Parser gem and `Prism::Translation::Parser` for
beginless range:
## Parser gem (Expected)
Returns `tBDOT2` token:
```console
$ bundle exec ruby -Ilib -rparser/ruby33 -ve \
'buf = Parser::S...
koic (Koichi ITO)
02:10 PM Feature #20331: Should parser warn hash duplication and when clause?
You don't need an entire bignum library, you only need multiplication and addition. Prism has all of these warnings implemented in https://github.com/ruby/ruby/blob/1e7ee871cbf10375ca149a32d71a29e5e60eed6c/prism/util/pm_integer.c. You're... kddnewton (Kevin Newton)
01:20 PM Feature #20331: Should parser warn hash duplication and when clause?
> Warnings are not shown by ruby -wc.
Couldn't `ruby -c` be made to compile as well? It's marginally slower but would make sense to me. That would remove the main con from solution 2.
byroot (Jean Boussier)
01:15 PM Feature #20331 (Closed): Should parser warn hash duplication and when clause?
# Background
Right now, parser warns duplicated hash keys (#1) and when clause (#2).
For example,
```ruby
{1 => :a, 1 => :b}
# => warning: key 1 is duplicated and overwritten on line 1
```
```ruby
case 2
when 1, 1
else
...
yui-knk (Kaneko Yuichiro)
01:43 PM Revision 1e7ee871 (git): Disregard si_addr for fatal signals sent from other processes
Previously, when another process sends a fatal signals such as SIGBUS
to Ruby, we could mis-interpret it as a stack overflow Ruby itself
generated. When the si_pid field is set on the signal, we shouldn't
check the si_addr field to check...
peterzhu2118 (Peter Zhu)
01:17 PM Misc #20281: DevMeeting-2024-03-14
* [Feature #20331] Should parser warn hash duplication and when clause?
* What is the best approach to handle hash duplication warnings and when clause duplication warnings.
yui-knk (Kaneko Yuichiro)
11:03 AM Revision ad2aa6d7 (git): Use `assert_crash_report` in `test_crash_report_pipe`
Instead of using `assert_in_out_err` directly. nobu (Nobuyoshi Nakada)
10:45 AM Revision 2af6bc26 (git): [ruby/prism] Fix an AST and token incompatibility for `Prism::Translation::Parser`
Fixes https://github.com/ruby/prism/pull/2515.
This PR fixes an AST and token incompatibility between Parser gem and `Prism::Translation::Parser`
for string literal with line breaks.
https://github.com/ruby/prism/commit/c58466e5bf
koic (Koichi ITO)
10:16 AM Bug #20277 (Closed): Remove stale `String` test conditionals
Applied in changeset commit:git|76bd586330d98b8a0023ff35c7fa6014ba3a4715.
----------
[Bug #20277] Remove stale `String` test conditionals
These instance variables for conditional execution have remained
unchanged for nearly twenty year...
nobu (Nobuyoshi Nakada)
05:32 AM Bug #20277: Remove stale `String` test conditionals
+1 ko1 (Koichi Sasada)
09:46 AM Revision 76bd5863 (git): [Bug #20277] Remove stale `String` test conditionals
These instance variables for conditional execution have remained
unchanged for nearly twenty years, since YARV merger.
nobu (Nobuyoshi Nakada)
08:33 AM Bug #20299: Tracepoint staying enable after a disable
Hm. I see. Thanks for the report.
The problem is the following sequence of operations:
* `tp.enable` - This attaches a global event handler to fire the tracepoint for all threads
* `tp.enable { ...` - When the block begins, it set...
kjtsanaktsidis (KJ Tsanaktsidis)
08:17 AM Revision 9a19cfd4 (git): [Universal Parser] Reduce dependence on RArray in parse.y
- Introduce `rb_parser_ary_t` structure to partly eliminate RArray from parse.y
- In this patch, `parser_params->tokens` and `parser_params->ast->node_buffer->tokens` are now `rb_parser_ary_t *`
- Instead, `ast_node_all_tokens()` int...
hasumikin (hitoshi hasumi)
07:54 AM Feature #19742: Introduce `Module#anonymous?`
A KISS version of the above is to provide `permanent_name?` only, since the other two can be derived with the help of `mod.name.nil?`, and I suspect that there are not a lot of cases in which you need to know if the name is exactly tempo... fxn (Xavier Noria)
07:23 AM Feature #13557: there's no way to pass backtrace locations as a massaged backtrace
@ko1 all the same use cases arrays of strings are currently used for:
E.g. raising an error with an existing backtrace:
```ruby
raise NicerError, "some message", original_error.backtrace_locations
```
Or with some frames skipp...
byroot (Jean Boussier)
04:28 AM Feature #13557: there's no way to pass backtrace locations as a massaged backtrace
I'm not against but could you summarize usages? ko1 (Koichi Sasada)
07:02 AM Bug #20321: `require': cannot load such file
> Yes, but the error mentioned above occurs
I don't get it - what are you doing that make this error happen then?
kjtsanaktsidis (KJ Tsanaktsidis)
05:49 AM Revision f42164e0 (git): Define `ssize_t` on mswin build
nobu (Nobuyoshi Nakada)
04:43 AM Feature #14066: Add CAA DNS RR on Resolv
Note: https://github.com/ruby/resolv/pull/48 has been merged for this request. hsbt (Hiroshi SHIBATA)
04:30 AM Feature #14066 (Closed): Add CAA DNS RR on Resolv
nobu (Nobuyoshi Nakada)
03:30 AM Revision 21ea290b (git): [ruby/prism] Static literals inspect
https://github.com/ruby/prism/commit/4913d112da kddnewton (Kevin Newton)
03:22 AM Feature #20329: Clean up `--dump` sub-options
`--dump=insns` will not be changed.
Since `+` is the separator, `insns+-opt` will be same as the current `insns_without_opt`.
nobu (Nobuyoshi Nakada)
02:00 AM Revision cb4bc4d0 (git): Pass TESTS environment variable
Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> ono-max (Naoto Ono)
02:00 AM Revision 4c0c29e2 (git): Expand Launchable into yjit-macos and yjit-ubuntu
ono-max (Naoto Ono)

03/11/2024

11:30 PM Revision 2c349cf4 (git): Use NEWOBJ_OF_ec in NEWOBJ_OF_0
peterzhu2118 (Peter Zhu)
11:06 PM Feature #20276: Introduce Fiber interfaces for Blocking operations on Ractors
I support this proposal.
A simple way to deal with this right now might be the following code (I have not tested it):
```ruby
Thread.new do
other_ractor.take
end.value
```
In general, the `block`/`unblock` operations shoul...
ioquatix (Samuel Williams)
09:56 PM Feature #19742: Introduce `Module#anonymous?`
Now, the name of classes and modules can be one of three things:
1. `nil`
2. Temporary
3. Permanent
Maybe it would make sense to provide matching predicates, say:
1. `mod.anonymous?`
2. `mod.temporary_name?`
3. `mod.permanen...
fxn (Xavier Noria)
07:46 PM Revision 132df4d1 (git): [ruby/prism] Document `InstanceVariableWriteNode` fields
(https://github.com/ruby/prism/pull/2161)
* Document InstanceVariableWriteNode fields
* Reference lexing docs in name field documentation
* Update config.yml
---------
https://github.com/ruby/prism/commit/015b3a857e
Co-authored-by:...
matthew healy
07:45 PM Revision e407e3f4 (git): [ruby/prism] Document `ClassVariableWriteNode` fields
(https://github.com/ruby/prism/pull/2162)
* Make ClassVariableWriteNode operator_loc non-nullable
* Document ClassVariableWriteNode fields
* Update config.yml
---------
https://github.com/ruby/prism/commit/659b133888
Co-authored-by...
matthew healy
04:51 PM Revision a6dac9bb (git): [PRISM] Parse stdin on CLI with prism
kddnewton (Kevin Newton)
03:12 PM Revision 6242a82c (git): [ruby/prism] Provide more documentation for pm_integer_parse_digit_values
https://github.com/ruby/prism/commit/c3fcb5031f kddnewton (Kevin Newton)
03:11 PM Revision 2dfa95a2 (git): [ruby/prism] Stop crashing on invalid integers
https://github.com/ruby/prism/commit/afac2d6646 kddnewton (Kevin Newton)
03:04 PM Revision e12bc5c5 (git): Remove dead function rb_obj_rgengc_promoted_p
peterzhu2118 (Peter Zhu)
02:49 PM Revision 2ab75bc4 (git): [ruby/prism] Support offset
https://github.com/ruby/prism/commit/665f533373 kddnewton (Kevin Newton)
02:41 PM Revision a295eeba (git): Pass `RUN_OPTS` in YJIT macos test (#10214)
`RUN_OPTS` environment variable is set but not passed to the test
task, unlike yjit-ubuntu.yml.
nobu (Nobuyoshi Nakada)
01:37 PM Bug #20319: Singleton class is being frozen lazily in some cases
> This bug should be fairly simple to fix by having `Kernel#freeze` go up the singleton class chain and freeze all currently instantiated singleton classes.
Yeah, that seems the smaller fix for now and at least it fixes a "should-be-i...
Eregon (Benoit Daloze)
01:35 PM Bug #20319: Singleton class is being frozen lazily in some cases
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> I disagree. If you do not freeze the object's singleton class, then you can define or undefine any method in the singleton class, which is almost the same as being able to modify the obje...
Eregon (Benoit Daloze)
01:30 PM Revision 9f315779 (git): Reuse rb_gc_writebarrier_unprotect in rb_copy_wb_protected_attribute
peterzhu2118 (Peter Zhu)
11:46 AM Misc #20320: Using OSU Open Source Lab native ppc64le/s390x CI services trigged on pull-requests
Let me share the update.
The team at OSU Open Source Lab prepared the infra for us to try the ppc64le/s390x CI services.
We can log the Jenkins CI services by GitHub accounts. Right now only 2 GitHub accounts "ruby" and "junaruga" (m...
jaruga (Jun Aruga)
11:00 AM Revision 08961ce8 (git): [ruby/rdoc] Allow rich definition list labels for Markdown
Previously, any sort of "rich" markup for a definition list's label
would cause the Markdown parser to not recognize a definition list:
```ruby
md = <<~md
`one`
: This is a definition
md
doc = RDoc::Markdown.parse(md)
doc # => [doc:...
Hartley McGuire
07:26 AM Revision 7a398adc (git): [DOC] security.rdoc: fix YAML security documentation
Since https://github.com/ruby/ruby/commit/fbb4e3f96c10de2240f2d87eac19cf6f62f65fea
`YAML` does not unmarshal arbitrary ruby objects.
Andrea Brancaleoni
05:03 AM Revision 5c32b31a (git): Bundle unmerged rbs for testing (#10211)
soutaro (Soutaro Matsumoto)
05:00 AM Feature #20329: Clean up `--dump` sub-options
What will replace `insns`? I don't want to type `insns+opt` every single time. If it stays as is and `insns_without_opt` is changed to `insns-opt` (insns minus opt) or something, I'm good. k0kubun (Takashi Kokubun)
03:29 AM Revision 2552984a (git): Skip documentation changes
Many contributors just include the word `documentation` in titles, but
not utilize `[DOC]` tag or `Documentation` label.
nobu (Nobuyoshi Nakada)

03/10/2024

04:24 PM Revision d0be77fb (git): Pre-build commands to clean
nobu (Nobuyoshi Nakada)
03:46 PM Revision 9f60fd9d (git): Ignore failures on removing ext sub directories
When multiple libraries exist in a subdirectory under `ext`, `rmdir
-p` may fail, because other directories have not been removed yet or
the parent directory has been removed by other `distclean`. `rmdir`
in GNU coreutils has `--ignore-...
nobu (Nobuyoshi Nakada)
03:46 PM Revision 51f4f141 (git): Clean up the build directory if `clean` is set to true
nobu (Nobuyoshi Nakada)
03:08 PM Revision 22459a8f (git): Clean up dummy files
nobu (Nobuyoshi Nakada)
02:23 PM Feature #15554: warn/error passing a block to a method which never use a block
Eregon (Benoit Daloze) wrote in #note-19:
> It would need to warn by default to address that.
Or you need to use $VERBOSE, or it could be a new category like `Warning[:strict]`. But it only indicates a *possible* problem, not *defini...
Dan0042 (Daniel DeLorme)
01:18 PM Revision fb00d002 (git): Clean up ext/Setup file
nobu (Nobuyoshi Nakada)
01:12 PM Revision 0fb39ab1 (git): Clean intermediate files and debug info for each target
By replacing `ALLOBJS` suffix with intermediate file suffixes instead
of roughly removing by wildcards. Made `cleanlibs` append `.dSYM`
suffix for each word in `TARGET_SO`, not the end of the entire list.
nobu (Nobuyoshi Nakada)
12:32 PM Revision 8e3cb69a (git): Report to Launchable at post-run
Instead of separate two actions, register the post run at setup.
Co-authored-by: Naoto Ono <onoto1998@gmail.com>
nobu (Nobuyoshi Nakada)
10:25 AM Bug #20330: [BUG] Segmentation fault at 0xffffffffffffffff
Seems related to shape and jemalloc.
Maybe `parent_index` in `redblack_cache_ancestors` is -1?
cc @tenderlovemaking
nobu (Nobuyoshi Nakada)
10:12 AM Revision b12343c3 (git): merge revision(s) d2cd903c85f38f42c6aefc6d97a1558f74d8d9db:
[ruby/openssl] pkey/ec: constify
https://github.com/ruby/openssl/commit/6fb3499a7b
---
ext/openssl/ossl_pkey_ec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
nagachika (Tomoyuki Chikanaga)

03/09/2024

02:08 PM Revision d94ad002 (git): Report non-empty directories [ci skip]
No longer used or generated files/directories sometimes remain
unremoved.
nobu (Nobuyoshi Nakada)
10:34 AM Revision 2976d91a (git): Include default gems directories in installed list
nobu (Nobuyoshi Nakada)
10:33 AM Bug #20330 (Closed): [BUG] Segmentation fault at 0xffffffffffffffff
I get a segfault from ruby on fly.io (a platform to run full stack apps).
As you can see from the stacktracke im using a jemalloc version but im getting the same crash with the
ruby:3.3.0-slim docker image. (Thats the docker file: htt...
l33tname (Sir l33tname)
10:17 AM Revision e9f77da5 (git): Reorder and move `install?` blocks after method definitions
nobu (Nobuyoshi Nakada)
09:45 AM Revision 6bfb6e60 (git): Merged intermediate class `GemInstaller` to `UnpackedInstaller`
nobu (Nobuyoshi Nakada)
09:04 AM Revision ced648f9 (git): Shorten too long message at uninstalling
nobu (Nobuyoshi Nakada)
05:46 AM Revision a6991021 (git): [ruby/rdoc] [DOC] Improve documentation of include directive file search
Searching the file in the "current directory" could be read as the
directory from which RDoc is run. This is incorrect, as the file is
first searched in the directory containing the current documented file.
Also this directory is search...
p8 (Petrik de Heus)
03:50 AM Revision 5ac6194c (git): [ruby/rdoc] Fix ToRdoc generating incorrect {label,name}-lists
Previously, trying to round-trip label-list and name-lists with the
ToRdoc converter was not possible:
```ruby
doc = <<~RDOC
foo ::
bar ::
hi
RDOC
markup = RDoc::Markup.parse(doc)
markup # => [doc: [list: NOTE [item: ["foo ", "bar"];...
Hartley McGuire

03/08/2024

07:18 PM Revision 35c20cda (git): [ruby/prism] Simplify the regular expression ASCII-only check
https://github.com/ruby/prism/commit/b7851f4c2d kddnewton (Kevin Newton)
07:18 PM Revision cfcbbbd8 (git): [ruby/prism] Simplify the ASCII-only check in regexp
https://github.com/ruby/prism/commit/b0935be727 kddnewton (Kevin Newton)
07:07 PM Revision dd24d884 (git): [ruby/prism] Fix a token incompatibility for `Prism::Translation::Parser`
Fixes https://github.com/ruby/prism/pull/2512.
This PR fixes a token incompatibility between Parser gem and `Prism::Translation::Parser`
for `HEREDOC_END` with a newline.
https://github.com/ruby/prism/commit/b67d1e0c6f
koic (Koichi ITO)
06:48 PM Revision 609bbad1 (git): [ruby/prism] Fix up regexp memory leaks
https://github.com/ruby/prism/commit/4dc58a533a kddnewton (Kevin Newton)
06:48 PM Revision a564f30f (git): [ruby/prism] Extract out pm_regexp_token_buffer_t
https://github.com/ruby/prism/commit/7bbe4224a3 kddnewton (Kevin Newton)
06:48 PM Revision 4e1d19c4 (git): [ruby/prism] Add initial implementation of `Regexp` validation.
https://github.com/ruby/prism/commit/6bf1b8edf0 Kevin Menard
06:48 PM Revision d473256a (git): [ruby/prism] Extract a magic value to a named constant.
https://github.com/ruby/prism/commit/54d14a35a9 Kevin Menard
06:48 PM Revision 82fb6a90 (git): [ruby/prism] Track both the unescaped bytes and source string for a regular expression so we can accurately set its encoding flags.
https://github.com/ruby/prism/commit/dc6dd3a926 Kevin Menard
06:04 PM Bug #20321: `require': cannot load such file
Has been done Justman10000 (Justin Nogossek)
01:42 PM Bug #20321: `require': cannot load such file
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-10:
> Maybe I’m missing something but it looks like your build worked? I can’t see any error message and the build finishes by installing everything to the right place in /usr/local
Yes...
Justman10000 (Justin Nogossek)
01:16 PM Bug #20321: `require': cannot load such file
Maybe I’m missing something but it looks like your build worked? I can’t see any error message and the build finishes by installing everything to the right place in /usr/local kjtsanaktsidis (KJ Tsanaktsidis)
01:06 PM Bug #20321: `require': cannot load such file
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-8:
> I need the output that those commands printed, though.
Get [here](https://dist.justman10000.de/log)
Justman10000 (Justin Nogossek)
03:45 PM Bug #20328: optparse omits the option's description in the --help output if the description is an Array
Correct. The `type` (third position) must be a primitive (or custom type, example: [Versionaire](https://alchemists.io/projects/versionaire#_optionparser)).
Keep in mind -- in your first example above -- you *must* supply a required (...
bkuhlmann (Brooke Kuhlmann)
02:10 AM Bug #20328: optparse omits the option's description in the --help output if the description is an Array
Ah ha! I suppose also adding an explicit option type class would help differentiate between option's desired value and the description lines?
```ruby
opts.on('-m', '--multiline-opt', String, 'Line one', 'Line two') do |test|
end...
postmodern (Hal Brodigan)
12:42 AM Bug #20328: optparse omits the option's description in the --help output if the description is an Array
The confusion is with the array (third argument) used with your `--multiline-opt` option. If you change it to the following, you'll get the desired result:
``` ruby
opts.on "-m", "--multiline-opt", "Line one", "Line two"
```
The ...
bkuhlmann (Brooke Kuhlmann)
01:13 PM Revision 2d80b609 (git): Retire RUBY_MARK_UNLESS_NULL
Marking `Qnil` or `Qfalse` works fine, having
an extra macro to avoid it isn't needed.
byroot (Jean Boussier)
12:33 PM Revision af8a4205 (git): Fix an error for `Prism::Translation::Parser::Lexer`
This PR fixes the following error for `Prism::Translation::Parser::Lexer` on the main branch:
```console
$ cat example.rb
'a' # aあ
"
#{x}
"
$ bundle exec rubocop
Parser::Source::Range: end_pos must not be less than begin_pos
/Users/koi...
koic (Koichi ITO)
10:13 AM Revision 4756eaf5 (git): [ruby/rdoc] Fix ToMarkdown missing newlines for label-lists
Previously, using ToMarkdown on a label-list would generate output that
could not be reparsed by the RDoc::Markdown parser:
```
md = <<~MD
apple
: a red fruit
banana
: a yellow fruit
MD
doc = RDoc::Markdown.parse(md)
doc # => [doc: [l...
Hartley McGuire
09:46 AM Feature #20329 (Closed): Clean up `--dump` sub-options
Currently we have 5 options for `--dump` command line option.
* insns
* insns_without_opt
* yydebug(+error-tolerant)
* parsetree(+error-tolerant)
* parsetree_with_comment(+error-tolerant)
Among these, `insns_without_opt` is a v...
nobu (Nobuyoshi Nakada)
09:23 AM Revision e8f796e9 (git): [ruby/irb] rdoc version lock is required
(https://github.com/ruby/irb/pull/897)
Some features of irb do not work properly when using the old rdoc.
I have compared several major versions and found that it works as intended from 4.0.0.
This problem occurs when there is a Gemfil...
alpaca-tc (Hiroyuki Ishii)
03:27 AM Revision 86ce78d7 (git): [rubygems/rubygems] Bump rb-sys
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.89 to 0.9.90.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.89...v0.9.90)
---
updated-depende...
dependabot[bot]
02:58 AM Revision 69cfcd46 (git): Remove duplicate dependency line
nobu (Nobuyoshi Nakada)
01:15 AM Revision 52a2bc4a (git): Try to run CI with Ubuntu 22.04
hsbt (Hiroshi SHIBATA)
 

Also available in: Atom