[#114703] [Ruby master Bug#19875] Ruby 2.7 -> 3.1 Performance regression in String#count — "iz (Illia Zub) via ruby-core" <ruby-core@...>

Issue #19875 has been reported by iz (Illia Zub).

18 messages 2023/09/12

[#114774] [Ruby master Feature#19884] Make Safe Navigation Operator work on classes — "p8 (Petrik de Heus) via ruby-core" <ruby-core@...>

Issue #19884 has been reported by p8 (Petrik de Heus).

13 messages 2023/09/15

[#114796] [Ruby master Feature#19889] Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths — "sawa (Tsuyoshi Sawada) via ruby-core" <ruby-core@...>

Issue #19889 has been reported by sawa (Tsuyoshi Sawada).

6 messages 2023/09/18

[#114803] [Ruby master Bug#19890] File#realine(chomp: true) slower/more allocations than readline.chomp! — "segiddins (Samuel Giddins) via ruby-core" <ruby-core@...>

Issue #19890 has been reported by segiddins (Samuel Giddins).

12 messages 2023/09/18

[#114817] [Ruby master Bug#19892] Build failure with 8f1b688177 — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

Issue #19892 has been reported by vo.x (Vit Ondruch).

8 messages 2023/09/19

[#114915] [Ruby master Feature#19905] Introduce `Queue#peek` — "hi@... (Joao Fernandes) via ruby-core" <ruby-core@...>

Issue #19905 has been reported by hi@joaofernandes.me (Joao Fernandes).

8 messages 2023/09/28

[ruby-core:114717] [Ruby master Feature#19839] Need a method to check if two ranges overlap

From: "baweaver (Brandon Weaver) via ruby-core" <ruby-core@...>
Date: 2023-09-13 05:58:04 UTC
List: ruby-core #114717
Issue #19839 has been updated by baweaver (Brandon Weaver).


I believe there are a few reasons for this addition. The core one I see often in justifications is precedence in existing Ruby, such as:

**Combinations**

These cases have clear precedent for iterable / enumerable types:

* `Array#concat` - Merging two Arrays
* `Hash#merge` - Merging two Hashes
* `Set#union` - Merging two Sets (or Enumerable on other end)

**Inclusions**

Interestingly not as common are patterns like `Enumerable#include?(other_enumerable)` versus the very common `Enumerable#include?(single_item)` so we have a lot of "unnamed" approximations:

* `Array` - `(array_two - array_one).empty?` or `array_one.intersection(array_two).any?`
* `Hash` - `(hash_two.keys - hash_one.keys).empty?`

...which are not very performant, and I would bet are common patterns in non-Rails code. It also raises a potential for `Hash#intersection` and how that might work with same keys with different values.

**Overlaps**

For these two cases I would also almost consider `overlaps?`, which is synonymous to `intersection(other).any?` from `Array`:

```ruby
[1, 2, 3].overlaps?([2, 3]) # true
{ a: 1, b: 2 }.overlaps?(a: 3, b: 5) # true? key vs value is complicated here

(1..10).overlaps?(5..15) # true
```

----

Point being I would argue there is a (minor) performance win potential here for existing code, it feels very much in the spirit of Ruby of creating a name for a common operation.

----------------------------------------
Feature #19839: Need a method to check if two ranges overlap
https://bugs.ruby-lang.org/issues/19839#change-104552

* Author: shouichi (Shouichi KAMIYA)
* Status: Open
* Priority: Normal
----------------------------------------
It would be convenient to have a method that checks if two ranges overlap. For example,

```
(0..10).overlap?(5..15) #=> true
(0..10).overlap?(20..30) #=> false
```



-- 
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/postorius/lists/ruby-core.ml.ruby-lang.org/

In This Thread