[#118180] [Ruby master Bug#20525] Percent string literal with indentation support — "bradgessler (Brad Gessler) via ruby-core" <ruby-core@...>

Issue #20525 has been reported by bradgessler (Brad Gessler).

8 messages 2024/06/04

[#118243] [Ruby master Feature#20564] Switch default parser to Prism — "kddnewton (Kevin Newton) via ruby-core" <ruby-core@...>

Issue #20564 has been reported by kddnewton (Kevin Newton).

11 messages 2024/06/07

[#118269] [Ruby master Bug#20570] Nokey behavior changed since 3.3. — "ksss (Yuki Kurihara) via ruby-core" <ruby-core@...>

Issue #20570 has been reported by ksss (Yuki Kurihara).

8 messages 2024/06/10

[#118279] [Ruby master Bug#20573] Warning.warn shouldn't be called for disabled warnings — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #20573 has been reported by tenderlovemaking (Aaron Patterson).

10 messages 2024/06/10

[#118281] [Ruby master Misc#20574] DevMeeting-2024-07-11 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

Issue #20574 has been reported by mame (Yusuke Endoh).

12 messages 2024/06/11

[#118346] [Ruby master Bug#20586] Some filesystem calls in dir.c are missing error handling and can return incorrect results if interrupted — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>

Issue #20586 has been reported by ivoanjo (Ivo Anjo).

13 messages 2024/06/19

[#118347] [Ruby master Bug#20587] dir.c calls blocking system calls while holding the GVL — "ivoanjo (Ivo Anjo) via ruby-core" <ruby-core@...>

Issue #20587 has been reported by ivoanjo (Ivo Anjo).

7 messages 2024/06/19

[#118360] [Ruby master Bug#20588] RangeError: integer 132186463059104 too big to convert to 'int' since cdf33ed5f37f9649c482c3ba1d245f0d80ac01ce with YJIT enabled — "yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>

Issue #20588 has been reported by yahonda (Yasuo Honda).

10 messages 2024/06/20

[#118388] [Ruby master Feature#20594] A new String method to append bytes while preserving encoding — "byroot (Jean Boussier) via ruby-core" <ruby-core@...>

SXNzdWUgIzIwNTk0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJ5cm9vdCAoSmVhbiBCb3Vzc2llciku

32 messages 2024/06/25

[ruby-core:118274] [Ruby master Bug#20570] Nokey behavior changed since 3.3.

From: "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date: 2024-06-10 14:59:47 UTC
List: ruby-core #118274
Issue #20570 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to ko1 (Koichi Sasada)

The following example is easy to understand this issue:

```ruby
def foo(*, **nil); :ok; end

foo(1, **{})    #=> Ruby 3.2: :ok
                #=> Ruby 3.3: :ok
foo(*[1], **{}) #=> Ruby 3.2: :ok
                #=> Ruby 3.3: no keywords accepted (ArgumentError)
```

It's an obvious regression.

Accoding to git bisect, the behavior has changed with commit:e87d0882910001ef3b0c2ccd43bf00cee8c34a0c. @ko1 Could you take a look? 

----------------------------------------
Bug #20570: Nokey behavior changed since 3.3.
https://bugs.ruby-lang.org/issues/20570#change-108767

* Author: ksss (Yuki Kurihara)
* Status: Assigned
* Assignee: ko1 (Koichi Sasada)
* ruby -v: ruby 3.3.2 (2024-05-30 revision e5a195edf6) [arm64-darwin22]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
I am using code that transfers the following method call, but found that the behavior has changed since CRuby 3.3.

```ruby
receiver_value = Set.new
method_name = :merge
args = [1]
kwargs = {}
block = nil
receiver_value.__send__(method_name, *args, **kwargs, &block)
# => no keywords accepted (ArgumentError)
```

Upon investigation, I found that the behavior of calling a method using `**nil` has changed starting from version 3.3.

```
$ docker run -it --rm rubylang/all-ruby env ALL_RUBY_SINCE=ruby-2.6 ./all-ruby -e 'def foo(*, **nil); end; p foo(*[], **{})'
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
ruby-2.6.0          -e:1: syntax error, unexpected nil, expecting ')'
                    def foo(*, **nil); end; p foo(*[], **{})
                                 ^~~
                exit 1
...
ruby-2.6.10         -e:1: syntax error, unexpected nil, expecting ')'
                    def foo(*, **nil); end; p foo(*[], **{})
                                 ^~~
                exit 1
ruby-2.7.0-preview1 -e:1: syntax error, unexpected `nil', expecting ')'
                    def foo(*, **nil); end; p foo(*[], **{})
                                 ^~~
                exit 1
ruby-2.7.0-preview2 nil
...
ruby-3.2.4          nil
ruby-3.3.0-preview1 -e:1:in `<main>': no keywords accepted (ArgumentError)

                    def foo(*, **nil); end; p foo(*[], **{})
                                                  ^^^^^^^^^
                exit 1
...
ruby-3.3.2          -e:1:in `<main>': no keywords accepted (ArgumentError)

                    def foo(*, **nil); end; p foo(*[], **{})
                                                  ^^^^^^^^^
                exit 1
ruby-3.4.0-preview1 -e:1:in '<main>': no keywords accepted (ArgumentError)

                    def foo(*, **nil); end; p foo(*[], **{})
                                                  ^^^^^^^^^
                exit 1
```

Is this change intentional?



-- 
https://bugs.ruby-lang.org/

In This Thread