[#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:114902] [Ruby master Feature#13933] Add Range#empty?

From: "akr (Akira Tanaka) via ruby-core" <ruby-core@...>
Date: 2023-09-27 14:37:21 UTC
List: ruby-core #114902
Issue #13933 has been updated by akr (Akira Tanaka).


Dan0042 (Daniel DeLorme) wrote in #note-13:
> akr (Akira Tanaka) wrote in #note-12:
> > From experience with `Float::NAN`, I think it is not a good idea to expand such objects.
> > It makes the behavior of `Array#<=>` inconsistent.
> 
> I agree but I think this is a bit different from what I was talking about. Float::NAN is a float that is not comparable with other floats. This is not the same case as a value that is not comparable with anything else.
> 

Float::NAN is not comparable with anything else, not only floats.

```
% ruby -e 'p Float::NAN <=> "foo"'               
nil
% ruby -e 'p Float::NAN <=> []'     
nil
```

> > > Or maybe we can define a range "r" as empty if `r.begin.nil? and r.exclude_end? and r.end.respond_to?(:empty?) and r.end.empty?`
> > 
> > You ignored the user-defined classes I mentioned.
> > A user may define a class with a minimum value.
> > The minimum value may not have `empty?` method.
> 
> How do you define which is the minimum value? I suggested the above as a *possible* way to define this minimum value. So a custom class would need to have #empty? that returns true in order to define "this is the minimum". But it was just a suggestion. Or maybe each class could have a MINIMUM constant like `String::MINIMUM = ""`, etc.

I described an idea in https://bugs.ruby-lang.org/issues/19839#note-18 :
`minimum?` method.

I feel `empty?` can sometimes be a wrong name.
`minimum?` represent the property directly.

> More importantly, I think that `(...minimum).empty?` is such an edge case of an edge case that it's not worth worrying too much. Are you suggesting that `Range#empty?` should not exist just because it's not possible to perfectly handle this extreme edge case for every possible class? Would it really be so bad if it returned `true` for user-defined classes?

I think a bug report like my comment will coming someday.
Ruby developers (especially matz) need to respond to it.

So, we compare the usefulness of the method and the difficulties of responding to the bug report.

Also, this problem can be expanded if we introduce `Range#exclude_begin?` (with neko operator).
https://bugs.ruby-lang.org/issues/12133
In that case, we need `maximum?` as well.
But we also need a method to check the existence between two objects because `[1] ^..^ [1, ""]` is empty (no objects between `[1]` and `[1, ""]`).


----------------------------------------
Feature #13933: Add Range#empty?
https://bugs.ruby-lang.org/issues/13933#change-104767

* Author: ted (Ted Johansson)
* Status: Open
* Priority: Normal
----------------------------------------
Range already responds to #size. It would be nice if it also responded to predicate #empty? :-)



-- 
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

Prev Next