[#106355] [Ruby master Bug#18373] RBS build failure: '/include/x86_64-linux/ruby/config.h', needed by 'constants.o'. — "vo.x (Vit Ondruch)" <noreply@...>
Issue #18373 has been reported by vo.x (Vit Ondruch).
28 messages
2021/12/01
[ruby-core:106553] [Ruby master Feature#18395] Introduce Array#subtract! for performance
From:
"byroot (Jean Boussier)" <noreply@...>
Date:
2021-12-08 16:42:26 UTC
List:
ruby-core #106553
Issue #18395 has been updated by byroot (Jean Boussier).
Have you benched `array.reject! { |e| array_or_set.include?(e) }`?
----------------------------------------
Feature #18395: Introduce Array#subtract! for performance
https://bugs.ruby-lang.org/issues/18395#change-95217
* Author: schneems (Richard Schneeman)
* Status: Open
* Priority: Normal
----------------------------------------
PR: https://github.com/ruby/ruby/pull/5110#issuecomment-984345309
It is common to use `-=` to modify an array to remove elements. Also, there is `Array#difference` which accepts multiple arguments. Both of these methods allocate an intermediate array when the original array could be re-used.
I am proposing we add an API onto Array that allows the programmer to perform a subtraction/difference operation and mutate the original array.
I am proposing `Array#subtract!`. Reasons why I did not choose `Array#difference!` are discussed in the comments of the PR. I'm also happy to discuss alternative names.
```
ary = [0, 1, 1, 2, 1, 1, 3, 1, 1]
ary.subtract!([1]) #=> [0, 2, 3]
ary #=> [0, 2, 3]
ary = [0, 1, 2, 3]
ary.subtract!([3, 0], [1, 3]) #=> [2]
ary #=> [2]
```
--
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>