[#88925] [Ruby trunk Feature#15095] [PATCH] share VM stack between threads and fibers if identical — ko1@...
Issue #15095 has been updated by ko1 (Koichi Sasada).
4 messages
2018/09/09
[#88927] Re: [Ruby trunk Feature#15095] [PATCH] share VM stack between threads and fibers if identical
— Eric Wong <normalperson@...>
2018/09/09
ko1@atdot.net wrote:
[#88926] [Ruby trunk Feature#15095] [PATCH] share VM stack between threads and fibers if identical — ko1@...
Issue #15095 has been updated by ko1 (Koichi Sasada).
3 messages
2018/09/09
[#89218] [Ruby trunk Bug#15130] open-uri hangs on cygwin — duerst@...
Issue #15130 has been updated by duerst (Martin D端rst).
5 messages
2018/09/30
[ruby-core:89038] [Ruby trunk Bug#15078] Hash splat of empty hash should not create a positional argument.
From:
akr@...
Date:
2018-09-17 05:53:29 UTC
List:
ruby-core #89038
Issue #15078 has been updated by akr (Akira Tanaka).
mame (Yusuke Endoh) wrote:
> ```
> def target(*args)
> p args
> end
>
> def forward(*args, **kw, &blk)
> target(*args, **kw, &blk)
> end
>
> target(1, 2, 3, {}) #=> [1, 2, 3, {}]
> forward(1, 2, 3, {}) #=> [1, 2, 3] on the semantics you proposed ([1, 2, 3, {}] on the current behavior)
> ```
>
> Akr-san said that it would be impossible to create a "perfect" semantics to satisfy all cases. In Ruby 2.X, he said that `**empty_hash` should be just ignored, and that `foo({}, **{})` should be always equal to `foo({})`, even if `def foo(opt=42, **kw)` receives `opt=42`. (However, matz showed reluctance to this behavior. So, the solution for this ticket is not decided yet.)
How about def `m(**kw) end` binds kw to nil if the last Hash argument is not taken as keyword arguments and
`m(**{})` add {} and `m(**nil)` don't add anything to arguments.
{}/nil distinguish there are keyword arguments or not.
This information is what lacks to implement perfect delegation method.
In this behavior, following two should be same behavior (in Ruby 2.X), I think.
```
def f(*a, *kw) g(*a, *kw) end
def f(*a) g(*a) end
```
----------------------------------------
Bug #15078: Hash splat of empty hash should not create a positional argument.
https://bugs.ruby-lang.org/issues/15078#change-74065
* Author: marcandre (Marc-Andre Lafortune)
* Status: Open
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version:
* ruby -v: ruby 2.6.0dev (2018-08-27 trunk 64545) [x86_64-darwin15]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
Looks like #10856 is not completely fixed, but I can't reopen it
```
def foo(*args); args; end
foo(**{}) # => []
foo(**Hash.new) # => [{}], should be []
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>