[#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:119191] [Ruby master Feature#20738] Removing a specific entry from a hash literal
From:
"Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Date:
2024-09-14 16:34:32 UTC
List:
ruby-core #119191
Issue #20738 has been updated by Eregon (Benoit Daloze).
I don't think it's OK to magically drop entries from a literal based on some value, it's way too surprising.
And of course `Hash::DROP` could leak into some variable and then unintentionally drop an entry, that'd be horrible to debug.
Notably this would make the capacity of the literal potentially wrong, etc.
```ruby
{
foo: 1,
**({ bar: 2 } if bar?)
}
# OR
h[:bar] = 2 if bar?
```
Sounds good enough to me.
I don't think it's very frequent to need this to warrant a syntax change either.
----------------------------------------
Feature #20738: Removing a specific entry from a hash literal
https://bugs.ruby-lang.org/issues/20738#change-109776
* 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/