Project

General

Profile

Activity

From 03/26/2024 to 04/01/2024

04/01/2024

11:26 PM Revision 799e8548 (git): [Feature #20331] Simplify parser warnings for hash keys duplication and when clause duplication
This commit simplifies warnings for hash keys duplication and when clause duplication,
based on the discussion of https://bugs.ruby-lang.org/issues/20331.
Warnings are reported only when strings are same to ohters.
yui-knk (Kaneko Yuichiro)
10:26 PM Revision 8066e3ea (git): Remove VALUE from `struct rb_strterm_struct`
In the past, it was imemo. However a075c55 changed it.
Therefore no need to use `VALUE` for the first field.
yui-knk (Kaneko Yuichiro)
10:17 PM Misc #20387: Meta-ticket for ASAN support
> How about making ASAN enabled for ruby-debug builds
That's not a bad idea (avoid adding yet more combinations!) but do you know how widely these builds are currently used and what for? ASAN will make them a heck of a lot slower so t...
kjtsanaktsidis (KJ Tsanaktsidis)
01:20 PM Misc #20387: Meta-ticket for ASAN support
kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-11:
> * Could we get an ASAN build of ruby into setup-ruby? This would make it easier to use ASAN with github actions and the like.
How about making ASAN enabled for ruby-debug builds a...
Eregon (Benoit Daloze)
07:39 PM Revision b25282e6 (git): [ruby/prism] Replace . with decimal point for strtod
https://github.com/ruby/prism/commit/578a4f983e kddnewton (Kevin Newton)
07:28 PM Revision b7597dac (git): [ruby/prism] Match more error messages
https://github.com/ruby/prism/commit/0cc3a9d63a kddnewton (Kevin Newton)
07:28 PM Revision d6c1cc55 (git): [ruby/prism] Fix up error messages for empty global variable
https://github.com/ruby/prism/commit/fa7559d40b kddnewton (Kevin Newton)
07:28 PM Revision d898f00f (git): [ruby/prism] Match error messages for invalid instance/class variables
https://github.com/ruby/prism/commit/82fd0599ed kddnewton (Kevin Newton)
07:28 PM Revision 67bd5b33 (git): [ruby/prism] Match error message for invalid class/module name
https://github.com/ruby/prism/commit/f00ae59070 kddnewton (Kevin Newton)
07:28 PM Revision 05904c3b (git): [ruby/prism] Match error message for invalid class/module definition
https://github.com/ruby/prism/commit/1879a9d22e kddnewton (Kevin Newton)
07:28 PM Revision a885d597 (git): [ruby/prism] Match error message for multiple blocks given
https://github.com/ruby/prism/commit/6b594d9d42 kddnewton (Kevin Newton)
07:28 PM Revision fee70c1e (git): [ruby/prism] Add better error messages for invalid block-locals
https://github.com/ruby/prism/commit/27ad452436 kddnewton (Kevin Newton)
07:28 PM Revision 1e737ec9 (git): [ruby/prism] Fix up error message for invalid numbered reference alias
https://github.com/ruby/prism/commit/74bff9e834 kddnewton (Kevin Newton)
07:08 PM Revision cc6668c6 (git): [PRISM] Enable passing pattern matching tests
kddnewton (Kevin Newton)
06:13 PM Revision a9658b64 (git): [ruby/prism] Do not track locals starting with _
https://github.com/ruby/prism/commit/0d5a6d936a kddnewton (Kevin Newton)
06:13 PM Revision ec879e7e (git): [ruby/prism] Use RubyVM::InstructionSequence instead of Ripper for validity check
https://github.com/ruby/prism/commit/ddec1c163d kddnewton (Kevin Newton)
06:13 PM Revision c2735c48 (git): [ruby/prism] Track duplicate hash keys for pattern matching
https://github.com/ruby/prism/commit/71ea82f299 kddnewton (Kevin Newton)
06:13 PM Revision f1e385aa (git): [ruby/prism] Track captures in pattern matching for duplicates
https://github.com/ruby/prism/commit/aa2182f064 kddnewton (Kevin Newton)
06:12 PM Revision a531cac3 (git): [ruby/reline] Refactor completion
(https://github.com/ruby/reline/pull/647)
* Refactor completion: split autocompletion and tabcompletion logic and state
* Move completion candidate listup logic from dialog proc to LineEditor
https://github.com/ruby/reline/commit/c3c0...
tompng (tomoya ishida)
04:25 PM Revision 508bddc8 (git): [ruby/reline] Align completion menu items
(https://github.com/ruby/reline/pull/613)
https://github.com/ruby/reline/commit/a622704f62
tompng (tomoya ishida)
04:00 PM Feature #20404: `2pi`
This has been brought up before to add the constant `tau`
https://bugs.ruby-lang.org/issues/17496
jzakiya (Jabari Zakiya)
02:26 PM Feature #20404: `2pi`
The Tau Manifesto (https://tauday.com/) was introduced by Michael Hartl, a Rubyist, and handily `𝜏 == 2π` so it might be worth also considering the tau letter: 𝜏 shan (Shannon Skipper)
11:24 AM Feature #20404: `2pi`
Now that Ruby has been unicode aware for over a decade, it's probably better to use actual pi letter: `2π` byroot (Jean Boussier)
05:40 AM Feature #20404: `2pi`
I really like this proposal. But I think for most of the world, it was a few hours too early. A time around 2024-04-01 12:00:00 UTC may have been easier to understand for most of the world. duerst (Martin Dürst)
03:03 PM Revision e2a1d0b5 (git): [rubygems/rubygems] Improve error message when strict resolution filters out everything
https://github.com/rubygems/rubygems/commit/1ea44b3749 deivid (David Rodríguez)
03:03 PM Revision f80bb383 (git): [rubygems/rubygems] Keep unfiltered versions separately
https://github.com/rubygems/rubygems/commit/7b5cc51a96 deivid (David Rodríguez)
03:03 PM Revision bfdbdf7a (git): [rubygems/rubygems] No need to check for root package every time
https://github.com/rubygems/rubygems/commit/6ca192649f deivid (David Rodríguez)
03:03 PM Revision b6ac37c9 (git): [rubygems/rubygems] No need for any version prioritization when building errors
We just need to filter versions belonging to the range, but don't need
anything else.
https://github.com/rubygems/rubygems/commit/8355a225d7
deivid (David Rodríguez)
03:03 PM Revision caaafbc3 (git): [rubygems/rubygems] Make it look more like BasicPackageSource
https://github.com/rubygems/rubygems/commit/bb5727934c deivid (David Rodríguez)
03:03 PM Revision d69ef1cc (git): [rubygems/rubygems] Let GemVersionPromoter sort in preferred order directly
So that we don't need to reverse the Array.
https://github.com/rubygems/rubygems/commit/aeea5e2e00
deivid (David Rodríguez)
03:03 PM Revision 2b82b7d1 (git): [rubygems/rubygems] Update docs
https://github.com/rubygems/rubygems/commit/ac24a68486 deivid (David Rodríguez)
03:03 PM Revision 0a1e3696 (git): [rubygems/rubygems] Remove unnecessary filtering
We do that when first caching versions, and then it's no longer
necessary.
https://github.com/rubygems/rubygems/commit/ede15847db
deivid (David Rodríguez)
03:03 PM Revision acbd91e4 (git): [rubygems/rubygems] No need to sort twice when filling versions
https://github.com/rubygems/rubygems/commit/13294528c4 deivid (David Rodríguez)
03:03 PM Revision d342937e (git): [rubygems/rubygems] Rename method for clarity
And also so that it matches the method used by main PubGrub sample
resolver class.
https://github.com/rubygems/rubygems/commit/0e612361b8
deivid (David Rodríguez)
03:03 PM Revision 3ca06835 (git): [rubygems/rubygems] Fix typo
https://github.com/rubygems/rubygems/commit/0ddf25e5aa deivid (David Rodríguez)
02:26 PM Revision e26ac3ab (git): Test finalizer is ran in bootstraptest
peterzhu2118 (Peter Zhu)
08:53 AM Feature #20405: Inline comments
vo.x (Vit Ondruch) wrote in #note-1:
> I like this proposal. But there are other possibilities, such as:
> ...
Thank you for the comment, but you may know `(:` can conflict existing code.
The reason I selected `(|` is that `/:|)` is u...
nobu (Nobuyoshi Nakada)
08:41 AM Feature #20405: Inline comments
I like this proposal. But there are other possibilities, such as:
~~~
(: This is comment :)
~~~
That would just underline Ruby as a "happy" language. Of course variants such as `(-: ... :-)` or even `(o: ... :o)` could even exte...
vo.x (Vit Ondruch)
01:09 AM Feature #20405 (Open): Inline comments
I propose a new inline comment syntax.
```ruby
p (| This is a comment (| and nested one |) /:|) (:|) #=> :|
```
nobu (Nobuyoshi Nakada)
08:17 AM Bug #20231: Don't wait in io_binwrite_string if not necessary.
Thanks! ioquatix (Samuel Williams)
07:55 AM Revision 12329753 (git): add CI matrix for clang-19
shyouhei (Shyouhei Urabe)
07:51 AM Revision b50c4dc3 (git): Rename the variable
It is not an empty gzipped data, a gzipped empty dump data. nobu (Nobuyoshi Nakada)
07:03 AM Revision 70645a5a (git): Write gzipped data as binary
Be careful when writing binary data on Windows.
```
$ ruby -e 's = Gem::Util.gzip("\x04\x08[\x05".b); p s.index("\n"); puts IO::Buffer.for(s).hexdump'
6
0x00000000 1f 8b 08 00 6c 3d 0a 66 00 03 63 e1 88 66 05 00 ....l=.f..c..f..
0x0000...
nobu (Nobuyoshi Nakada)
06:32 AM Revision acfef7c4 (git): Use dummy data generated by RubyGems
hsbt (Hiroshi SHIBATA)
03:05 AM Revision 0774232b (git): Remove unnecessary macros and functions for Universal Parser
S_H_ (Shun Hiraoka)
01:06 AM Revision e07178d5 (git): [DOC] Fix scope resolution operator typo in `Process#wait` docs
joshuay03 (Joshua Young)

03/31/2024

11:57 PM Bug #20403: TestResolvDNS#test_query_ipv4_address_truncated_tcp_fallback can flake if TCP port is in use
Fixed in https://github.com/ruby/resolv/pull/49 kjtsanaktsidis (KJ Tsanaktsidis)
11:57 PM Bug #20403 (Closed): TestResolvDNS#test_query_ipv4_address_truncated_tcp_fallback can flake if TCP port is in use
Applied in changeset commit:git|80bda107c84187d90eeff9497d465e086364b420.
----------
[ruby/resolv] Add an explicit with_udp_and_tcp helper to test_dns.rb
This helper tries to bind UDP and TCP sockets to the same port, by
retrying the b...
Anonymous
11:14 AM Bug #20403: TestResolvDNS#test_query_ipv4_address_truncated_tcp_fallback can flake if TCP port is in use
I opened https://github.com/ruby/ruby/pull/10413 for this. kjtsanaktsidis (KJ Tsanaktsidis)
11:10 AM Bug #20403 (Closed): TestResolvDNS#test_query_ipv4_address_truncated_tcp_fallback can flake if TCP port is in use
The test TestResolvDNS#test_query_ipv4_address_truncated_tcp_fallback wants to make a TCP and UDP DNS server on the same port. It achieves this by binding to a random UDP port (with `:0`), and then trying to bind to that TCP port. Howeve... kjtsanaktsidis (KJ Tsanaktsidis)
11:57 PM Revision 80bda107 (git): [ruby/resolv] Add an explicit with_udp_and_tcp helper to test_dns.rb
This helper tries to bind UDP and TCP sockets to the same port, by
retrying the bind if the randomly-assinged UDP port is already taken in
TCP. This fixes a flaky test.
[Bug #20403]
https://github.com/ruby/resolv/commit/3d135f99d9
KJ Tsanaktsidis
04:51 PM Feature #20404 (Rejected): `2pi`
I propose a new Float literal: `2pi`.
```ruby
p 2pi #=> 6.283185307179586 == 2 * Math::PI
```
I am not proposing `1pi`, `3pi` or `4pi`. I do only `2pi`. Because in most cases, all you need is `2pi`. Any other multiple of pi is r...
mame (Yusuke Endoh)
10:20 AM Bug #20245: Crash when checking symbol encoding
ruby_3_2 27606daf8efeb0ae6d0590a2c9bb1c5aae07f140 merged revision(s) ac0163949a6ee678dfccec9f6e56422b91e5f0a9,01fd262e62076277a41af72ea13f20deb1b462a2. nagachika (Tomoyuki Chikanaga)
10:20 AM Bug #20190: `invalid_encoding_string << number` should be valid encoding in some case, but does not
ruby_3_2 4f3ed07d5bfd581b630e4afc8b9bb170ce781e7f merged revision(s) ade56737e2273847426214035c0ff2340b43799a. nagachika (Tomoyuki Chikanaga)
10:19 AM Bug #20231: Don't wait in io_binwrite_string if not necessary.
ruby_3_2 bf6e9299ef4f10dbd23f32331c355ac875bfb5e3 merged revision(s) 2554c5d3b8738a248cedb2fea96dfab9fbe19417. nagachika (Tomoyuki Chikanaga)
10:19 AM Bug #20194: Memory leak with TracePoint on bmethod
ruby_3_2 1b5c74a2408d248f35cb811327dd51f49ee37c9e merged revision(s) b14674b236445fb70f484603e678722760f678f4. nagachika (Tomoyuki Chikanaga)
10:12 AM Revision e02a06fb (git): Document how to run the tests under ASAN now that they pass!
KJ Tsanaktsidis
09:48 AM Misc #20387: Meta-ticket for ASAN support
OK! Everything required to make `make check` pass on my machine with ASAN enabled has been merged! I opened https://github.com/ruby/ruby/pull/10412 to update the documentation to include the correct incantation.
The next things I woul...
kjtsanaktsidis (KJ Tsanaktsidis)
09:33 AM Bug #20402 (Closed): Double-free in TestIseqLoad#test_stressful_roundtrip
Applied in changeset commit:git|9d0a5148ae062a0481a4a18fbeb9cfd01dc10428.
----------
Add missing RB_GC_GUARDs related to DATA_PTR
I discovered the problem in `compile.c` from a failing
TestIseqLoad#test_stressful_roundtrip test with AS...
Anonymous
09:33 AM Revision 9d0a5148 (git): Add missing RB_GC_GUARDs related to DATA_PTR
I discovered the problem in `compile.c` from a failing
TestIseqLoad#test_stressful_roundtrip test with ASAN enabled. The other
two changes in array.c and string.c I found by auditing similar usages
of DATA_PTR in the codebase.
[Bug #20402]
KJ Tsanaktsidis
08:37 AM Revision 27606daf (git): merge revision(s) ac0163949a6ee678dfccec9f6e56422b91e5f0a9,01fd262e62076277a41af72ea13f20deb1b462a2: [Backport #20245]
Compile code without Symbol GC always
---
symbol.c | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)
Fix crash when checking symbol encoding
[Bug #20245]
...
nagachika (Tomoyuki Chikanaga)
08:31 AM Bug #20098: Wrong regexp match in ruby 3.2 and 3.3
The changeset bb59696614083660241ef272f222628cbfa95844 cannot be merged into ruby_3_2 branch cleanly and hard to me to write a patch. @tompng Could you kindly create the patch for ruby_3_2 branch? nagachika (Tomoyuki Chikanaga)
08:18 AM Revision 4f3ed07d (git): merge revision(s) ade56737e2273847426214035c0ff2340b43799a: [Backport #20190]
Fix coderange of invalid_encoding_string.<<(ord)
Appending valid encoding character can change coderange from invalid to valid.
Example: "\x95".force_encoding('sjis')<<0x5C will be a valid string "\x{955C}"
---
...
nagachika (Tomoyuki Chikanaga)
08:17 AM Revision 1b5c74a2 (git): merge revision(s) b14674b236445fb70f484603e678722760f678f4: [Backport #20194]
Memory leak with TracePoint on bmethod
[Bug #20194]
When disabling the TracePoint on bmethod, the hooks list is not freed.
For example:
obj = Object.new
obj.define_singleton_method(:foo...
nagachika (Tomoyuki Chikanaga)
08:16 AM Revision bf6e9299 (git): merge revision(s) 2554c5d3b8738a248cedb2fea96dfab9fbe19417: [Backport #20231]
Don't wait in `io_binwrite_string` if not necessary. (#9792)
---
io.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
nagachika (Tomoyuki Chikanaga)
02:37 AM Revision 174b6716 (git): [rubygems/rubygems] [commands/rebuild] Remove unused DATE_FORMAT constant.
https://github.com/rubygems/rubygems/commit/3c4e3fadc9 Ellen Marie Dash
02:24 AM Revision 9579cf45 (git): If we have a shape cache we should use it
If there is a shape cache, then we should believe the results instead of
doing a linear search for non-existent items
This fixes a case where checking the index of an undefined ivar would
result in an O(n) search. Now we get O(log n).
...
tenderlovemaking (Aaron Patterson)

03/30/2024

03:54 PM Revision 376ae222 (git): Manage required baseruby version in one place
Add a Ruby script mode to `tool/missing-baseruby.bat` that checks if
`RUBY_VERSION` meets the required version. This will enable similar
checks on mswin as well.
nobu (Nobuyoshi Nakada)
09:34 AM Revision f697d324 (git): Manage required baseruby version in one place
nobu (Nobuyoshi Nakada)
06:58 AM Revision a6d8837d (git): Update bundled gems list as of 2024-03-29
git[bot]
02:02 AM Bug #20402: Double-free in TestIseqLoad#test_stressful_roundtrip
https://github.com/ruby/ruby/pull/10408 should fix this kjtsanaktsidis (KJ Tsanaktsidis)
01:57 AM Bug #20402 (Closed): Double-free in TestIseqLoad#test_stressful_roundtrip
With ASAN enabled, the TestIseqLoad#test_stressful_roundtrip fails with the following output:
```
2/9] TestIseqLoad#test_stressful_roundtrip = 7.26 s
1) Failure:
TestIseqLoad#test_stressful_roundtrip [/home/kj/ruby/test/-ext-/ise...
kjtsanaktsidis (KJ Tsanaktsidis)

03/29/2024

11:32 PM Revision cdb8d208 (git): [PRISM] Fix error message for duplicate parameter name
kddnewton (Kevin Newton)
09:29 PM Bug #20330 (Closed): [BUG] Segmentation fault at 0xffffffffffffffff
I think this is a duplicate of #20184 and should be fixed in 3.3.1. tenderlovemaking (Aaron Patterson)
07:27 PM Revision d7d59ea1 (git): [rubygems/rubygems] add test case to ensure updating with multiple sources + caching maintains the right lockfile
https://github.com/rubygems/rubygems/commit/65839757e6 Alex Robbin
04:28 PM Revision f57c7fef (git): [PRISM] Have RubyVM::InstructionSequence.compile respect --parser=prism
kddnewton (Kevin Newton)
03:44 PM Revision 729a3968 (git): [ruby/prism] Fix calloc argument order
https://github.com/ruby/prism/commit/9947ab13c0 kddnewton (Kevin Newton)
03:43 PM Revision 718c7d4a (git): [ruby/prism] Handle NULL byte terminators for strings, regexps, and lists
https://github.com/ruby/prism/commit/79a75258a4 kddnewton (Kevin Newton)
03:39 PM Bug #20216 (Closed): Circular parameter reference not checked for assignment
kddnewton (Kevin Newton)
03:21 PM Bug #20399: Ripper doesn't respect implicit -x
I agree, but I still think Ripper should match the parser's behavior here. Otherwise you can't get the AST of those kinds of files. kddnewton (Kevin Newton)
05:11 AM Bug #20399: Ripper doesn't respect implicit -x
Shebang makes sense only in an executable script file.
```sh
$ echo $'#!/bin/sh\np :sh' | ruby
ruby: no Ruby script found in input (LoadError)
bash: exit 1
$ ruby -e $'#!/bin/sh\np :sh'
:sh
```
nobu (Nobuyoshi Nakada)
03:18 PM Feature #20384: RubyVM::InstructionSequence.{new,compile} use --parser option
I've opened a PR here https://github.com/ruby/ruby/pull/10406. I'm assuming no one has an objection based on the silence, so I'll merge once CI passes. kddnewton (Kevin Newton)
12:51 PM Revision 8191735b (git): [PRISM] Fix BEGIN{} execution order
kddnewton (Kevin Newton)
11:55 AM Bug #20400 (Closed): Nested BEGIN{} execution order
Thank you for the clarification! kddnewton (Kevin Newton)
05:37 AM Bug #20400: Nested BEGIN{} execution order
`BEGIN` blocks are:
a. executed in the order they appeared in the same nesting level.
b. executed in prior to outside the block.
> ```ruby
> ...
"2" is first because it is in the inner `BEGIN` in the block for "1".
> ```ruby
...
nobu (Nobuyoshi Nakada)
08:03 AM Revision 38331c89 (git): [rubygems/rubygems] [gemspec_helpers] Fix Rubocop warning.
https://github.com/rubygems/rubygems/commit/4ebf6ee5ac Ellen Marie Dash
08:03 AM Revision d19744fb (git): [rubygems/rubygems] [build, rebuild] Split common find_gemspec() out to GemspecHelpers.
https://github.com/rubygems/rubygems/commit/2f80a595c4 Ellen Marie Dash
08:03 AM Revision d916dbcb (git): [rubygems/rubygems] Improve formatting of "gem rebuild --help" output.
https://github.com/rubygems/rubygems/commit/701550f9dd Ellen Marie Dash
08:03 AM Revision 54d90e13 (git): [rubygems/rubygems] [rebuild] If --diff is not passed and a rebuild fails, suggest passing --diff.
https://github.com/rubygems/rubygems/commit/7caadd182c Ellen Marie Dash
08:03 AM Revision dfe83df0 (git): [rubygems/rubygems] [rebuild_command] Bail early if the RubyGems version doesn't match.
https://github.com/rubygems/rubygems/commit/a691170dc7 Ellen Marie Dash
08:03 AM Revision 88d7be46 (git): [rubygems/rubygems] [rebuild_command] Use Gem.* helpers.
https://github.com/rubygems/rubygems/commit/8644ce7193 Ellen Marie Dash
08:03 AM Revision fe096f64 (git): [rubygems/rubygems] [rebuild_command] Clean up help text.
https://github.com/rubygems/rubygems/commit/4446389f2e Ellen Marie Dash
08:03 AM Revision 54e0b807 (git): [rubygems/rubygems] [rebuild_command] Use temporary directory instead of the working directory.
https://github.com/rubygems/rubygems/commit/f2e4e5b56f Ellen Marie Dash
08:03 AM Revision a28087af (git): [rubygems/rubygems] [rebuild_command] Add --diff flag to try using diffoscope.
https://github.com/rubygems/rubygems/commit/3e9545193a Ellen Marie Dash
08:03 AM Revision cd12dfd3 (git): [rubygems/rubygems] [rebuild_command] Avoid leaking files.
https://github.com/rubygems/rubygems/commit/3b88553d0d Ellen Marie Dash
08:03 AM Revision e5def27f (git): [rubygems/rubygems] Add "gem rebuild" command.
https://github.com/rubygems/rubygems/commit/6d661573f0 Ellen Marie Dash
06:18 AM Bug #20398: heap-buffer-overflow in numeric literal parsing
Thank you, that fixed it yes. And it's a much better fix :) kjtsanaktsidis (KJ Tsanaktsidis)
04:43 AM Bug #20401: Duplicated when clause warning line number
This behavior was discovered and briefly discussed during the previous dev meeting. The actual warning is
```
test.rb:4: warning: duplicated 'when' clause with line 2 is ignored
```
According to @nobu, this reads "The 'when' clau...
mame (Yusuke Endoh)
01:56 AM Bug #20401: Duplicated when clause warning line number
On the otherhand, if you have duplicated hash keys you get:
```ruby
{
bar: 1,
baz: 1,
bar: 1
}
```
For the warning: `warning: key :bar is duplicated and overwritten on line 4`. So this seems correct.
kddnewton (Kevin Newton)
01:55 AM Bug #20401 (Closed): Duplicated when clause warning line number
When you have a duplicated when clause, you get a warning for it. For example:
```ruby
case foo
when :bar
when :baz
when :bar
end
```
you get ``warning: duplicated `when' clause with line 2 is ignored``.
But the when claus...
kddnewton (Kevin Newton)
02:16 AM Bug #17996 (Closed): Cygwin: thread + pipe behavior since Ruby 2.6
https://github.com/ruby/ruby/pull/9357 may be fixed this. hsbt (Hiroshi SHIBATA)

03/28/2024

11:13 PM Revision 02d40b6c (git): Use ubf list on cygwin
fd0 (Daisuke Fujimura)
09:41 PM Revision f3c35749 (git): YJIT: Optimize putobject+opt_ltlt for integers
In `jit_rb_int_lshift()`, we guard against the right hand side changing
since we want to avoid generating variable length shifts. When control
reaches a `putobject` and `opt_ltlt` pair, though, we know that the right
hand side never chan...
alanwu (Alan Wu)
09:35 PM Revision 817eecf6 (git): [PRISM] Enable passing regexp test
kddnewton (Kevin Newton)
08:39 PM Revision a8ec347c (git): [ruby/prism] Allow writing to keywords with named captures if they are already locals
https://github.com/ruby/prism/commit/418318e1c8 kddnewton (Kevin Newton)
07:30 PM Revision 8780059c (git): [ruby/prism] Reject invalid capture groups (keywords)
https://github.com/ruby/prism/commit/bb78d83e88 kddnewton (Kevin Newton)
07:21 PM Revision bb3cbdfe (git): YJIT: add iseq_alloc_count to stats (#10398)
* YJIT: add iseq_alloc_count to stats
* Remove an empty line
---------
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
maximecb (Maxime Chevalier-Boisvert)
07:17 PM Revision a8f902ea (git): [PRISM] Add debug info for frozen strings
kddnewton (Kevin Newton)
07:13 PM Feature #20394: Add an offset parameter to `String#to_i`
byroot (Jean Boussier) wrote in #note-10:
> `StringIO` isn't as convenient as you make it out to be. Maybe it could become that, but it isn't today.
Hmm, it's not like it matters very much, but I get the weird feeling you misundersto...
Dan0042 (Daniel DeLorme)
08:54 AM Feature #20394: Add an offset parameter to `String#to_i`
> but rest assured once we can start using IO::Buffer exclusively, I will do so.
I'd be curious to see an HTTP1 parser using IO::Buffer. I don't see how you'd do it today.
byroot (Jean Boussier)
08:52 AM Feature #20394: Add an offset parameter to `String#to_i`
My protocol gems have been around since Ruby 2.3+ so there are compatibility issues, but rest assured once we can start using `IO::Buffer` exclusively, I will do so. Using `String` for IO buffers is equally fraught with odd issues like e... ioquatix (Samuel Williams)
07:28 AM Feature #20394: Add an offset parameter to `String#to_i`
> What about IO::Buffer? It was introduced somewhat stealthily and its API is somewhat unique, and yet by its idea it seems to be exactly that.
I'm aware of it, but it only offer binary oriented methods. Perhaps it could be extended t...
byroot (Jean Boussier)
07:20 AM Feature #20394: Add an offset parameter to `String#to_i`
> I'd be all for a dedicated `Buffer` class that allow to efficiently parse text protocols like HTTP and RESP3, but right now all we got is String.
What about [IO::Buffer](https://docs.ruby-lang.org/en/master/IO/Buffer.html)? It was i...
zverok (Victor Shepelev)
06:59 AM Feature #20394 (Closed): Add an offset parameter to `String#to_i`
> This interpretation mismatch could be a source of vulnerability.
Good catch @mame, that does indeed make the `to_i` proposal much more problematic. I guess I don't really have much of a proposal anymore.
> ...
Not today no. You c...
byroot (Jean Boussier)
03:22 AM Feature #20394: Add an offset parameter to `String#to_i`
I thought of a security concern.
I suppose all methods proposed in this ticket would allow underscores as a digit separator. This is natural in Ruby, but usually an unnecessary feature outside of Ruby, including the Redis protocol.
T...
mame (Yusuke Endoh)
06:13 PM Bug #20400 (Closed): Nested BEGIN{} execution order
Right now there are specs for the order in which `BEGIN{}` should be executed, which is the order they appear in the file. For example:
```ruby
BEGIN { print "1" }
print "4"
BEGIN { print "2" }
print "5"
BEGIN { print "3" }
```
...
kddnewton (Kevin Newton)
05:02 PM Revision 3e9c6842 (git): [PRISM] Allow space before encoding comment
kddnewton (Kevin Newton)
04:04 PM Revision 86e0d83a (git): [PRISM] Simplify raising load errors
kddnewton (Kevin Newton)
04:04 PM Revision d583616f (git): [ruby/prism] Ensure deserialization works with errors+warnings>256
https://github.com/ruby/prism/commit/f540e830b5 kddnewton (Kevin Newton)
04:04 PM Revision 35ff3028 (git): [ruby/prism] Various cleanup with new -x option
https://github.com/ruby/prism/commit/020756fb11 kddnewton (Kevin Newton)
04:04 PM Revision f7c5e11d (git): [PRISM] Use new -x prism API
kddnewton (Kevin Newton)
04:04 PM Revision fcc06fa8 (git): [ruby/prism] CLI -x flag
https://github.com/ruby/prism/commit/2068e3c30a kddnewton (Kevin Newton)
03:54 PM Revision 97b2cc34 (git): Allow FormatError to take either String or Gem for source
Most of the calls to `FormatError.new` pass `@gem` for the second argument, which has a `path` method.
But in one case—on package.rb:691 in `verify_gz`, the `source` argument is a `String`.
So if there's ever a GZip decode error when a...
jez (Jake Zimmerman)
03:54 PM Revision fa0a6241 (git): Don't check for dynamic symbol when reference updating
All symbols in the GC are dynamic symbols, so we don't need to check it. peterzhu2118 (Peter Zhu)
02:58 PM Revision 03ab4a56 (git): Clean symlinks to be runnable [ci skip]
nobu (Nobuyoshi Nakada)
02:48 PM Revision 7055dcf9 (git): [ruby/prism] Improve description for InterpolatedStringNodeFlags
https://github.com/ruby/prism/commit/caa576d63f andrykonchin (Andrew Konchin)
02:28 PM Bug #20398 (Closed): heap-buffer-overflow in numeric literal parsing
Applied in changeset commit:git|2ab9fb1c2e659f1f819ed63796171b2129255185.
----------
[Bug #20398] Terminate token buffer at invalid octal number
nobu (Nobuyoshi Nakada)
12:02 PM Bug #20398: heap-buffer-overflow in numeric literal parsing
Does this fix it?
```diff
diff --git a/parse.y b/parse.y
index 585130c3465..55619273b8e 100644
--- a/parse.y
+++ b/parse.y
@@ -10164,6 +10164,7 @@ parse_numeric(struct parser_params *p, int c)
/* prefixed octal */
...
nobu (Nobuyoshi Nakada)
04:54 AM Bug #20398: heap-buffer-overflow in numeric literal parsing
https://github.com/ruby/ruby/pull/10393 should fix this kjtsanaktsidis (KJ Tsanaktsidis)
04:51 AM Bug #20398 (Closed): heap-buffer-overflow in numeric literal parsing
I found the following ASAN error in `TestRubyLiteral#test_integer`. It appears that this code is calling strdup on a non-null terminated string.
```
[1/1] TestRubyLiteral#test_integer==================================================...
kjtsanaktsidis (KJ Tsanaktsidis)
02:27 PM Bug #20399 (Open): Ripper doesn't respect implicit -x
For the given script:
```ruby
#!/bin/sh
# -*- ruby -*-
exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ] if false
#!ruby
# This needs ruby 2.0, Subversion and Git.
# As a Ruby committer, run this in an SVN repository
# to commit a chan...
kddnewton (Kevin Newton)
02:19 PM Revision 4fa8fefd (git): Suppress warning at literal string
nobu (Nobuyoshi Nakada)
01:28 PM Revision 2ab9fb1c (git): [Bug #20398] Terminate token buffer at invalid octal number
nobu (Nobuyoshi Nakada)
08:41 AM Feature #19057: Hide implementation of `rb_io_t`.
"ioquatix (Samuel Williams) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> Issue #19057 has been updated by ioquatix (Samuel Williams).
>
>
> > Why don't you reconsider the "nested public interface" approach?
>
> My asses...
Anonymous
06:52 AM Misc #20336: DevMeeting-2024-04-17
* [Bug #19865] Segfault when calling user signal handlers during VM shutdown
* Seems like the bug is well understood and there is a patch for it (https://github.com/nobu/ruby/tree/signal-at-cleanup), can it be merged?
dentarg (Patrik Ragnarsson)
05:01 AM Bug #20050: Segfault on Ruby 3.2.2 (and 3.1) on x86_64 Darwin 20 (rb_id_table_lookup for #hash)
Any chance this could be backported into Ruby 3.2? It was a bit tricky because of the VWA-related changes in 3.3, but I did manage to open a PR to do this: https://github.com/ruby/ruby/pull/10394
I'm running into this problem with the...
kjtsanaktsidis (KJ Tsanaktsidis)
02:44 AM Revision 7630a89a (git): Use www.rfc-editor.org for RFC text.
We use the following site for that now:
* https://tools.ietf.org/ or http
* https://datatracker.ietf.org or http
Today, IETF said the official site of RFC is www.rfc-editor.org.
FYI: https://authors.ietf.org/en/references-in-rfcxml
I...
hsbt (Hiroshi SHIBATA)
02:18 AM Revision 67bdb7aa (git): [DOC] Use `rdoc-ref:@` shorthands for `rdoc-label:` tags
nobu (Nobuyoshi Nakada)
01:55 AM Revision 7293cef0 (git): [DOC] molinillo has been moved
nobu (Nobuyoshi Nakada)
01:15 AM Revision 84236132 (git): Launchable: Configure OS correctly in macos.yaml
ono-max (Naoto Ono)

03/27/2024

10:50 PM Misc #20387: Meta-ticket for ASAN support
I merged another few PR's related to unit tests in ASAN builds:
https://github.com/ruby/ruby/pull/10383
https://github.com/ruby/ruby/pull/10384
https://github.com/ruby/ruby/pull/10385
https://github.com/ruby/ruby/pull/10386
kjtsanaktsidis (KJ Tsanaktsidis)
10:49 PM Revision dc9d2455 (git): Add a missing asan_unpoisoning_p in gc_set_candidate_object_i
It walks the heap, and checks for T_NONE and T_ZOMBIE objects, so it
needs to unpoison these slots before accessing them when ASAN is
enabled.
KJ Tsanaktsidis
10:48 PM Revision 75234beb (git): Make TestParallel#test_retry_workers consider RUBY_TEST_TIMEOUT_SCALE
This test currently fails if RUBY_TEST_TIMEOUT_SCALE is set, because the
worker timeout is scaled out but the duration of the sleep does not;
thus, the test-test-case does not timeout when it should.
KJ Tsanaktsidis
10:48 PM Revision 7bdd742c (git): Set ASAN_OPTIONS=disable_coredump=0 for test_execopts_rlimit test
By default, ASAN sets RLIMIT_CORE to zero, "to avoid dumping a 16T+ core
file" on 64 bit systems. These tests are just asserting on the expected
value of RLIMIT_CORE, not actually dumping core files, so it's fine to
disable that behaviou...
KJ Tsanaktsidis
10:48 PM Revision 8c7b9bd0 (git): Disable ASAN handle_segv in test_rubyoptions.rb
ASAN registers a sigsegv handler and causes extra output to be emitted
that these tests are not expecting.
KJ Tsanaktsidis
09:19 PM Revision 7e12b03c (git): [PRISM] Set path on syntax error
kddnewton (Kevin Newton)
08:46 PM Feature #20394: Add an offset parameter to `String#to_i`
mame (Yusuke Endoh) wrote in #note-6:
> Generalizing, we may want `IO#scanf`, but that's probably overkill?
This previously existed in the stdlib but was removed: #16170
byroot (Jean Boussier) wrote in #note-7:
> ...
With Stri...
Dan0042 (Daniel DeLorme)
07:41 AM Feature #20394: Add an offset parameter to `String#to_i`
> The idea of an offset in a string is perfectly represented via the cursor in IO/StringIO
Indeed, but the problem is that you then have very few methods to parse values or peak in the buffer to find elements. Lots of methods needed f...
byroot (Jean Boussier)
03:57 AM Feature #20394: Add an offset parameter to `String#to_i`
As @eregon said, `String#to_i(offset:)` with byte offset looks strange to me.
I like `IO#get_i(base=10)` and `StringIO#get_i` (despite the name).
I was a little concerned that it returns infinitely large Bignum when the IO reads "9...
mame (Yusuke Endoh)
06:59 PM Revision 010286c7 (git): [PRISM] Enable passing test for hash duplicated keys
kddnewton (Kevin Newton)
06:57 PM Revision 9b97f1f3 (git): [ruby/prism] Compare duplicates keys/whens for __FILE__
https://github.com/ruby/prism/commit/85263ade63 kddnewton (Kevin Newton)
06:31 PM Bug #20395: Invalid license note in vsnprintf.c
But wait, maybe the ["old style" license](https://github.com/ruby/ruby/blame/e51014f9c05aa65cbf203442d37fef7c12390015/LEGAL#L1091-L1119) is crippled and it should really contain the additional paragraph, because otherwise as far as I und... vo.x (Vit Ondruch)
06:25 PM Bug #20395: Invalid license note in vsnprintf.c
Actually, there is one more occurrence of this situation:
https://github.com/ruby/ruby/blob/51e6becd391eac03fd3842e1db9b6907999d64ba/LEGAL?plain=1#L1090-L1093
and there is some history:
https://github.com/ruby/ruby/commit/cb47ae...
vo.x (Vit Ondruch)
05:12 PM Bug #20395: Invalid license note in vsnprintf.c
nobu (Nobuyoshi Nakada) wrote in #note-1:
> Should we remove that note simply?
Yes, that seems to like something which should have been part of that commit.
vo.x (Vit Ondruch)
06:31 PM Revision 9f9c0425 (git): [PRISM] Turn on passing test
kddnewton (Kevin Newton)
06:28 PM Revision 4361727d (git): [ruby/prism] Warn on static literal arrays in predicate writes
https://github.com/ruby/prism/commit/faadd05693 kddnewton (Kevin Newton)
06:19 PM Revision 39606f36 (git): [PRISM] Implicitly change encoding when a UTF-8 BOM is found
kddnewton (Kevin Newton)
06:19 PM Revision ab2ee308 (git): [PRISM] Match style for invalid encoding error
kddnewton (Kevin Newton)
06:19 PM Revision eb995a64 (git): [PRISM] Include file and line in error message
kddnewton (Kevin Newton)
05:41 PM Feature #20390 (Closed): Issue with StringIO and chilled strings
Applied in changeset commit:git|0f5ab4ad5289d6385b74e800a73de005a48737b6.
----------
[ruby/stringio] Eagerly defrost chilled strings
[Feature #20390]
https://github.com/ruby/stringio/commit/17ee957f34
Co-authored-by: Jean Boussier <b...
etienne (Étienne Barrié)
05:41 PM Revision 51e6becd (git): [ruby/stringio] Extract `readonly_string_p`
https://github.com/ruby/stringio/commit/0da5b725c8 nobu (Nobuyoshi Nakada)
05:27 PM Revision 06563d78 (git): [ruby/stringio] Adjust styles [ci skip]
https://github.com/ruby/stringio/commit/4e8e82fc30 nobu (Nobuyoshi Nakada)
05:27 PM Revision 0f5ab4ad (git): [ruby/stringio] Eagerly defrost chilled strings
[Feature #20390]
https://github.com/ruby/stringio/commit/17ee957f34
Co-authored-by: Jean Boussier <byroot@ruby-lang.org>
etienne (Étienne Barrié)
05:27 PM Revision db5686a8 (git): Read as binary regardless locale
nobu (Nobuyoshi Nakada)
05:22 PM Bug #20397 (Closed): The nkf license in LEGAL file seems to be obsolete
The LEGAL file seems to contain [obsolete information](https://github.com/ruby/ruby/blob/a69f0047cb489c136001937442c1d2ffd8ea1dd7/LEGAL?plain=1#L730-L746) about nkf license.
It seems that nkf indeed use such license, but in upstream, ...
vo.x (Vit Ondruch)
05:03 PM Revision a69f0047 (git): [PRISM] Use new error formatting API
kddnewton (Kevin Newton)
05:03 PM Revision 9b816e67 (git): [ruby/prism] Add option for inlining messages for error formatting
https://github.com/ruby/prism/commit/af0204a8ab kddnewton (Kevin Newton)
04:55 PM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
This is a great addition! I've often used a post-processing script to remove the string data, so having it built in would be very helpful.
I think `false` would be a good default (but either way is fine by me).
jhawthorn (John Hawthorn)
08:50 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
> false on default is safer?
Agreed. Safer and faster. I only set it to `true` on default to not change the current behavior, but wouldn't mind flipping it to `false` by default.
byroot (Jean Boussier)
08:48 AM Feature #20396: ObjectSpace.dump_all(string_value: false): skip dumping the String contents
false on default is safer?
ko1 (Koichi Sasada)
08:29 AM Feature #20396 (Open): ObjectSpace.dump_all(string_value: false): skip dumping the String contents
`ObjectSpace.dump_all` is a very useful method to debug memory leaks and such, hence is frequently needed in production. But since all the 7bit strings content is included in the dump, it incur the risk of leaking personal data, or secre... byroot (Jean Boussier)
03:41 PM Revision c50b6425 (git): Remove st_lookup when updating object ID
peterzhu2118 (Peter Zhu)
03:41 PM Revision 4566843b (git): Check FL_SEEN_OBJ_ID before looking up in table
This is an optimization for compaction so that we only lookup in the
obj_to_id_tbl table only when FL_SEEN_OBJ_ID is set.
peterzhu2118 (Peter Zhu)
02:12 PM Revision e4d64797 (git): Add array/hash implicit allocation tests
These are designed to prevent allocation regressions (commits that
increase the number of implicitly allocated arrays and hashes). We
have already had three commits in the last couple weeks to fix
allocation regressions:
* 15dc3aaa311b3...
jeremyevans (Jeremy Evans)
01:39 PM Revision aa794cc5 (git): Turn GC off at boot on Windows
This is to stop crashes like:
.\miniruby.exe: [BUG] Segmentation fault
ruby 3.4.0dev (2024-03-26T15:38:26Z pull/10370/merge 040ea2ae2f) [x64-mswin64_140]
-- Control frame information ----------------------------------------...
peterzhu2118 (Peter Zhu)
01:39 PM Revision 19916bac (git): Revert "skip `test_gc_stress_at_startup`"
This reverts commit 3680981c7b71df8c3a426164787ccefe5296bb25. peterzhu2118 (Peter Zhu)
01:39 PM Revision f14e52c8 (git): Fix setting GC stress at boot when objspace not available
peterzhu2118 (Peter Zhu)
01:39 PM Revision 1d99fe43 (git): Register classpath of FrozenCore before converting to ICLASS
Since ICLASS do not mark the classpath, we need to register it as a
global object before we convert RubyVM::FrozenCore as a ICLASS.
peterzhu2118 (Peter Zhu)
01:39 PM Revision 9ad175c1 (git): Register rb_fix_to_s_static as global right after creating
If a GC runs right during creating a rb_fix_to_s_static, it may cause
the previous ones to become swept by the GC because they have not been
registered by rb_vm_register_global_object.
peterzhu2118 (Peter Zhu)
12:48 PM Revision 2505c27f (git): [PRISM] Fix up some error formatting edge cases
kddnewton (Kevin Newton)
12:34 PM Revision 42d1cd8f (git): [PRISM] Pass --enable-frozen-string-literal through to evals
kddnewton (Kevin Newton)
12:34 PM Revision a1ae29e8 (git): [PRISM] Enable other passing specs
kddnewton (Kevin Newton)
12:34 PM Revision 843c760a (git): [PRISM] Enable passing syntax tests
kddnewton (Kevin Newton)
12:34 PM Revision 8b2fc859 (git): [PRISM] Enable passing frozen string in array test
kddnewton (Kevin Newton)
12:34 PM Revision 6f8a252e (git): [PRISM] Enable passing heredoc test
kddnewton (Kevin Newton)
12:34 PM Revision e4b21090 (git): [PRISM] Fix ASCII-compatible check for eval encoding
kddnewton (Kevin Newton)
11:48 AM Bug #19716: SystemStackError occurs too easily on Alpine Linux (due to small stack size reported by pthread_attr_getstacksize on musl libc)
hsbt (Hiroshi SHIBATA) wrote in #note-5:
> We welcome patch for them.
[Patch](https://bugs.ruby-lang.org/attachments/7081) has been available for for years. https://bugs.ruby-lang.org/issues/19716#note-2 confirms it still works for...
ncopa (Natanael Copa)
01:44 AM Bug #19716 (Feedback): SystemStackError occurs too easily on Alpine Linux (due to small stack size reported by pthread_attr_getstacksize on musl libc)
mame (Yusuke Endoh)
01:03 AM Bug #19716 (Closed): SystemStackError occurs too easily on Alpine Linux (due to small stack size reported by pthread_attr_getstacksize on musl libc)
Unfortunately, there is no active maintainer for musl or alpine platform.
I tagged them to [musl](https://bugs.ruby-lang.org/projects/ruby-master/issues?fields%5B%5D=issue_tags&operators%5Bissue_tags%5D=%3D&set_filter=1&values%5Bissue...
hsbt (Hiroshi SHIBATA)
11:34 AM Revision 44b5c912 (git): [rubygems/rubygems] Allow installing plugins from path via CLI
Also bring the man page up to date.
https://github.com/rubygems/rubygems/commit/a849bd6947
Cody Cutrer
07:18 AM Revision cbc11bcb (git): Ignore errors on prerelease gems
nobu (Nobuyoshi Nakada)
06:59 AM Revision 6498c439 (git): Update bundled gems list as of 2024-03-26
git[bot]
05:00 AM Revision 66a0e8b0 (git): d9234ba87b7e48381c8c44ef4a302ef368ee0ee7 is done to fix at related gems
hsbt (Hiroshi SHIBATA)
04:26 AM Revision 16c18eaf (git): Revert "Mark iseq structs with rb_gc_mark_movable"
This reverts commit a31ca3500d995b6706f94ff72166d699c5faeb27 which
broke debug inspector API.
nobu (Nobuyoshi Nakada)
04:26 AM Revision 0c114dfc (git): Check existing ISeq wrapper
nobu (Nobuyoshi Nakada)
03:17 AM Revision e5143517 (git): Update vendored resolv to 0.4.0
hsbt (Hiroshi SHIBATA)
03:17 AM Revision 8fa6c364 (git): [ruby/strscan] Omit tests for `#scan_byte` and `#peek_byte` on
TruffleRuby temporary
(https://github.com/ruby/strscan/pull/91)
The methods were added in #89 but they aren't implemented in TruffleRuby
yet. So let's omit them for now to have CI green.
https://github.com/ruby/strscan/commit/844d963b56
andrykonchin (Andrew Konchin)
03:16 AM Revision 8896ac02 (git): [ruby/openssl] Fix test_pkey_dsa.rb in FIPS.
Note that I created the `dsa2048.pem` and signature text
(`signature_encoded.txt`), that is used as a text to create the `signature0` in
the `test_sign_verify` by the following steps with the `openssl` CLI on FIPS
module.
```
$ OPENSSL_...
Jun Aruga
01:53 AM Misc #20028 (Closed): I'd like my commit bit back
Sorry to my late action.
I recovered your account at redmine, github and our canonical repository.
hsbt (Hiroshi SHIBATA)
01:45 AM Bug #20099 (Feedback): Ruby 3.3.0 segfaults on s390x musl libc (Alpine Linux) when built with -O3 (default optflags)
mame (Yusuke Endoh)
01:01 AM Bug #20099 (Closed): Ruby 3.3.0 segfaults on s390x musl libc (Alpine Linux) when built with -O3 (default optflags)
Unfortunately, there is no active maintainer for musl or alpine platform.
I tagged them to [musl](https://bugs.ruby-lang.org/projects/ruby-master/issues?fields%5B%5D=issue_tags&operators%5Bissue_tags%5D=%3D&set_filter=1&values%5Bissue...
hsbt (Hiroshi SHIBATA)
01:44 AM Misc #17174 (Feedback): "Error relocating, symbol not found" error when compiling a native extension on Alpine with Ruby >=2.4
mame (Yusuke Endoh)
01:03 AM Misc #17174 (Closed): "Error relocating, symbol not found" error when compiling a native extension on Alpine with Ruby >=2.4
Unfortunately, there is no active maintainer for musl or alpine platform.
I tagged them to [musl](https://bugs.ruby-lang.org/projects/ruby-master/issues?fields%5B%5D=issue_tags&operators%5Bissue_tags%5D=%3D&set_filter=1&values%5Bissue...
hsbt (Hiroshi SHIBATA)
01:03 AM Bug #16810 (Closed): ruby segfaults on s390x with musl libc
Unfortunately, there is no active maintainer for musl or alpine platform.
I tagged them to [musl](https://bugs.ruby-lang.org/projects/ruby-master/issues?fields%5B%5D=issue_tags&operators%5Bissue_tags%5D=%3D&set_filter=1&values%5Bissue...
hsbt (Hiroshi SHIBATA)

03/26/2024

11:24 PM Revision 6e343867 (git): [flori/json] Fix memory leak when exception is raised during JSON generation
If an exception is raised the FBuffer is leaked.
For example, the following script leaks memory:
o = Object.new
def o.to_json(a) = raise
10.times do
100_000.times do
begin
JSON(o)
rescue
...
peterzhu2118 (Peter Zhu)
10:52 PM Revision b2b665eb (git): [DOC] remove repetitive words in comments
Signed-off-by: crazeteam <lilujing@outlook.com> crazeteam
09:10 PM Bug #20393 (Closed): `after_fork_ruby` clears all pending interrupts for both parent and child process.
Nobu approved this change on the PR, so I've merged it: https://github.com/ruby/ruby/commit/a7ff264477105b5dc0ade6facad4176a1b73df0b
I'll introduce a separate PR to add the test to ruby-spec.
ioquatix (Samuel Williams)
07:53 AM Bug #20393: `after_fork_ruby` clears all pending interrupts for both parent and child process.
@nobu can you please review <https://github.com/ruby/ruby/pull/10365> thanks!
Some more background found by @mame:
- Originally introduced in <https://github.com/ruby/ruby/commit/2d5061bd98a59fc1b9a477074f8f7a3500db8342>. It looks ...
ioquatix (Samuel Williams)
05:41 AM Bug #20393 (Closed): `after_fork_ruby` clears all pending interrupts for both parent and child process.
In the following program, the behaviour of the parent process is affected by whether `Process.fork` is invoked or not.
```ruby
Thread.handle_interrupt(RuntimeError => :never) do
Thread.current.raise(RuntimeError, "Queued error")
...
ioquatix (Samuel Williams)
09:10 PM Revision a7ff2644 (git): Don't clear pending interrupts in the parent process. (#10365)
Samuel Williams
07:32 PM Feature #20394: Add an offset parameter to `String#to_i`
Dan0042 (Daniel DeLorme) wrote in #note-4:
> It doesn't seem like String#getbyte is much faster than File#getbyte, and StringIO#getbyte is fastest of all.
I'm seeing a similar result to what you show above with YJIT disabled, but `s...
shan (Shannon Skipper)
06:40 PM Feature #20394: Add an offset parameter to `String#to_i`
byroot (Jean Boussier) wrote in #note-3:
> We tried this, but it was way slower (https://github.com/redis-rb/redis-client/pull/150), we haven't dug much as to why. But generally I'd love if I could just rely on the internal IO buffer in...
Dan0042 (Daniel DeLorme)
11:39 AM Feature #20394: Add an offset parameter to `String#to_i`
> I think #19315 is a more general solution for this.
I don't think so, because for the `to_i` case at least, you can already do this today with `byteslice`:
```ruby
def parse_int(offset)
@buffer.byteslice(offset, -1).to_i
end
```
B...
byroot (Jean Boussier)
11:21 AM Feature #20394: Add an offset parameter to `String#to_i`
BTW I think the custom String#to_i makes a lot of sense, and might be faster than String#to_i because it needs to handle fewer cases and can e.g. handle reading directly from an IO vs going through a String in between. Eregon (Benoit Daloze)
11:18 AM Feature #20394: Add an offset parameter to `String#to_i`
I think #19315 is a more general solution for this.
It feels unidiomatic to add `offset` kwargs to core methods just to avoid substrings, I think we should make substrings faster instead.
For unpack it's more natural to have an offse...
Eregon (Benoit Daloze)
10:57 AM Feature #20394 (Closed): Add an offset parameter to `String#to_i`
### Context
I maintain the `redis-client` gem, and it comes with an optional swapable implementation in C that binds the `hiredis` C client, [which used to performs up to 5 times faster in some cases](https://github.com/redis-rb/redis...
byroot (Jean Boussier)
07:32 PM Revision 0c62eb25 (git): [PRISM] Use correct encoding for regular expression literals
kddnewton (Kevin Newton)
06:41 PM Revision 4a78d752 (git): [ruby/prism] Fix an incorrect range of `Prism::Location` when `PM_ERR_RETURN_INVALID`
This PR fixes the following incorrect range of `Prism::Location` when `PM_ERR_RETURN_INVALID`.
It may be hard to tell from the text, but this Ruby error highlights `return`:
```console
$ ruby -e 'class Foo return end'
-e:1: Invalid ret...
koic (Koichi ITO)
06:33 PM Revision 696b2716 (git): Return stdbool from recursive_check()
The return value is used as a boolean value in C. Since it's not used as
a Ruby object, it just seems confusing that it returns a VALUE.
k0kubun (Takashi Kokubun)
06:29 PM Revision e16086b7 (git): Refactor init_copy gc attributes
This PR moves `rb_copy_wb_protected_attribute` and
`rb_gc_copy_finalizer` into a single function called
`rb_gc_copy_attributes` to be called by `init_copy`. This reduces the
surface area of the GC API.
Co-authored-by: Peter Zhu <peter@p...
eileencodes (Eileen Uchitelle)
06:24 PM Revision 16cf9047 (git): [DOC] Fix a couple other descriptions
similarly to 332f4938cf3adbff8f15b647767dc660583a5bef k0kubun (Takashi Kokubun)
06:21 PM Revision 332f4938 (git): [DOC] Fix a description about rb_exec_recursive_outer
It gives true/TRUE (int) instead of Qtrue (VALUE). k0kubun (Takashi Kokubun)
05:53 PM Revision 3e0eea64 (git): Don't set RUBY_TYPED_EMBEDDABLE flag on backtrace
peterzhu2118 (Peter Zhu)
05:53 PM Revision 4bdb7961 (git): Mark frame info structs with rb_gc_mark_movable
Using rb_gc_mark_movable and a reference update function, we can make
frame infos movable in memory, and avoid pinning frame info backtraces.
```
require "objspace"
exceptions = []
GC.disable
50_000.times do
begin
raise "some exce...
gmcgibbon (Gannon McGibbon)
04:11 PM Revision 4300c42a (git): [PRISM] Better handle interpolated* nodes with inner frozen parts
kddnewton (Kevin Newton)
04:11 PM Revision 8ec7c3ce (git): [ruby/prism] Properly handle freeing ephemeral node lists
https://github.com/ruby/prism/commit/f49261a9b9 kddnewton (Kevin Newton)
04:11 PM Revision 2a3601d6 (git): [ruby/prism] Handle regexp split between heredocs
https://github.com/ruby/prism/commit/c1400d8aed kddnewton (Kevin Newton)
04:11 PM Revision 240fb395 (git): [ruby/prism] Freeze internal parts, again
https://github.com/ruby/prism/commit/50372fee5c kddnewton (Kevin Newton)
03:02 PM Bug #20168: Process won't exit when Ractor.select waiting a Ractor
I think I have encountered the same issue. I was able to reproduce the problem using a simpler code that results in a process hang when a Ractor, which internally raises an exception, is passed to `Ractor.select`.
Here is the minimal co...
over.rye@gmail.com (Masato Ohba)
02:02 PM Revision 19752cf4 (git): Use macro SET_WHEN_UINT
peterzhu2118 (Peter Zhu)
01:49 PM Revision e9152bc9 (git): [ruby/prism] Enable ParametersSignatureTest on TruffleRuby
https://github.com/ruby/prism/commit/c7a7af1eac andrykonchin (Andrew Konchin)
01:30 PM Bug #20395: Invalid license note in vsnprintf.c
Should we remove that note simply? nobu (Nobuyoshi Nakada)
11:19 AM Bug #20395 (Open): Invalid license note in vsnprintf.c
I am looking into Ruby licenses and I stumble upon vsnprintf.c, namely about these lines:
~~~
/*
* IMPORTANT NOTE:
* --------------
* From ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
* paragraph 3 above is n...
vo.x (Vit Ondruch)
11:54 AM Revision 2b08406c (git): Expose rb_str_chilled_p
Some extensions (like stringio) may need to differentiate between
chilled strings and frozen strings.
They can now use rb_str_chilled_p but must check for its presence since
the function will be removed when chilled strings are removed....
etienne (Étienne Barrié)
11:30 AM Revision 8cfa8e87 (git): [ruby/irb] Fix a typo (https://github.com/ruby/irb/pull/912)
https://github.com/ruby/irb/commit/2057248e40 hsbt (Hiroshi SHIBATA)
10:51 AM Bug #20392 (Closed): Delegate super calls with a block
Applied in changeset commit:git|a850cd1a87bef738c40d9c550fb8823699083f2e.
----------
[Bug #20392] Block arguments duplication check at `super`
nobu (Nobuyoshi Nakada)
01:12 AM Bug #20392: Delegate super calls with a block
jeremyevans0 (Jeremy Evans) wrote in #note-4:
> It's missing entries for `NODE_SUPER` and `NODE_ZSUPER` in `get_nd_args`, so the `nd_args` are ignored for those nodes. At least those node types should be fixed, and all other node types...
nobu (Nobuyoshi Nakada)
01:11 AM Bug #20392: Delegate super calls with a block
https://github.com/ruby/ruby/pull/10361 nobu (Nobuyoshi Nakada)
12:57 AM Bug #20392: Delegate super calls with a block
tenderlovemaking (Aaron Patterson) wrote in #note-3:
> Dan0042 (Daniel DeLorme) wrote in #note-1:
> ...
It's missing entries for `NODE_SUPER` and `NODE_ZSUPER` in `get_nd_args`, so the `nd_args` are ignored for those nodes. At least t...
jeremyevans0 (Jeremy Evans)
12:42 AM Bug #20392: Delegate super calls with a block
Dan0042 (Daniel DeLorme) wrote in #note-1:
> In Ruby 3.2, example 3 raised an exception "both block arg and actual block given"
> ...
Thanks, I should have checked older versions. According to git bisect, this was introduced in fdc329...
tenderlovemaking (Aaron Patterson)
12:01 AM Bug #20392: Delegate super calls with a block
`super(...){}`should be a syntax error, just as `foo(...){}` is.
`super` behavior in general is special. For example, `super(arg)` is not a zsuper, but still passes the block implicitly, you have to do `super(arg, &nil)` to avoid p...
jeremyevans0 (Jeremy Evans)
10:51 AM Revision 52cf6ec4 (git): [ruby/prism] Fix typos
After finding the "if if" typo, some additional typos identified by running `codespell` are also being corrected:
https://github.com/codespell-project/codespell
https://github.com/ruby/prism/commit/e6a34cfeeb
koic (Koichi ITO)
08:37 AM Revision a850cd1a (git): [Bug #20392] Block arguments duplication check at `super`
nobu (Nobuyoshi Nakada)
08:18 AM Revision 3680981c (git): skip `test_gc_stress_at_startup`
(maybe) from 9cf754b the test fails on some environments:
https://rubyci.s3.amazonaws.com/icc-x64/ruby-master/log/20240325T200004Z.fail.html.gz
```
1) Failure:
TestGc#test_gc_stress_at_startup [/home/chkbuild/chkbuild/tmp/build/20240...
ko1 (Koichi Sasada)
07:20 AM Feature #19236: Allow to create hashes with a specific capacity from Ruby
Implemented `Hash.new(capacity:)` in https://github.com/ruby/ruby/pull/10357 byroot (Jean Boussier)
03:33 AM Bug #20391 (Feedback): Segmentation fault at 0x0000000000000028 on Ruby 3.3.0
For the time being, how about using rubylang/ruby image?
https://hub.docker.com/r/rubylang/ruby/
Currently, there is no core developer in Ruby responsible for alpine (or musl) support. Therefore, I don't think there is currently an...
mame (Yusuke Endoh)
02:10 AM Revision b39057f3 (git): Fix extension installer for out-of-place build
https://github.com/ruby/ruby/pull/9673#issuecomment-2019028293 hsbt (Hiroshi SHIBATA)
 

Also available in: Atom