[#119132] Segfault using ruby C on MacOS (Intel Catalina and M2 Sonoma) — "martin.kufner--- via ruby-core" <ruby-core@...>
Hey guys,
4 messages
2024/09/12
[#119133] Re: Segfault using ruby C on MacOS (Intel Catalina and M2 Sonoma)
— "martin.kufner--- via ruby-core" <ruby-core@...>
2024/09/12
I just saw, that the #includes dont show up in the c file ...
[#119145] [Ruby master Misc#20728] Propose Eileen Uchitelle as a core committer — "kddnewton (Kevin Newton) via ruby-core" <ruby-core@...>
Issue #20728 has been reported by kddnewton (Kevin Newton).
14 messages
2024/09/12
[#119312] [Ruby master Bug#20762] `make test-basic` with -DRGENGC_FORCE_MAJOR_GC is always failure — "hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>
Issue #20762 has been reported by hsbt (Hiroshi SHIBATA).
6 messages
2024/09/27
[ruby-core:119189] [Ruby master Feature#20738] Removing a specific entry from a hash literal
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2024-09-14 04:53:31 UTC
List:
ruby-core #119189
Issue #20738 has been updated by mame (Yusuke Endoh).
History. Long ago in Ruby, such a special value actually existed. It was `nil`.
```ruby
# ruby 1.4.6
h = { 1 => 2 }
p h #=> {1=>2}
# This removes the key 1
h[1] = nil
p h #=> {}
```
However, there were more and more cases where we want to treat `nil` as an ordinary value. Finally, `nil` has lost this speciality.
Considering this history, the special value is not a good idea.
----------------------------------------
Feature #20738: Removing a specific entry from a hash literal
https://bugs.ruby-lang.org/issues/20738#change-109773
* Author: ursm (Keita Urashima)
* Status: Open
----------------------------------------
Sometimes I want to decide whether or not to add a particular entry to a hash depending on a condition. If the entire hash does not use nil, I can use Hash#compact.
```ruby
{
foo: 1,
bar: bar? ? 2 : nil
}.compact
```
But if I want to remove only a specific entry while leaving the other nil, it is somewhat cumbersome. I have to either assign the hash once and change it destructively, or use Hash#reject.
``` ruby
h = {
foo: 1,
baz: nil
}
h[:bar] = 2 if bar?
```
``` ruby
{
foo: 1,
bar: bar? ? 2 : :drop,
baz: nil
}.reject {|_, v| v == :drop }
```
As a suggestion, how about a special value that indicates an invalid key for the hash? With this, the above example could be written like this:
``` ruby
{
foo: 1,
bar: bar? ? 2 : Hash::DROP,
baz: nil
} #=> {foo: 1, baz: nil}
```
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/