[#120855] [Ruby master Bug#21104] Net::HTTP connections failing in Ruby >= 3.4.0 on macOS with Happy Eyeballs enabled — "mjt58 (Mike Thompson) via ruby-core" <ruby-core@...>

Issue #21104 has been reported by mjt58 (Mike Thompson).

14 messages 2025/02/01

[#120873] [Ruby master Bug#21111] RbConfig::CONFIG['CXX'] quietly set to "false" when Ruby cannot build C++ programs — "stanhu (Stan Hu) via ruby-core" <ruby-core@...>

Issue #21111 has been reported by stanhu (Stan Hu).

10 messages 2025/02/03

[#120884] [Ruby master Bug#21115] Etc.getgrgid is not Ractor-safe but is marked as such — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #21115 has been reported by Eregon (Benoit Daloze).

7 messages 2025/02/05

[#120897] [Ruby master Bug#21119] Programs containing `Dir.glob` with a thread executing a CPU-heavy task run very slowly. — "genya0407 (Yusuke Sangenya) via ruby-core" <ruby-core@...>

Issue #21119 has been reported by genya0407 (Yusuke Sangenya).

6 messages 2025/02/06

[#121054] [Ruby master Bug#21139] Prism and parse.y parses `it = it` differently — "tompng (tomoya ishida) via ruby-core" <ruby-core@...>

Issue #21139 has been reported by tompng (tomoya ishida).

19 messages 2025/02/14

[#121060] [Ruby master Feature#21140] Add a method to get the address of certain JIT related functions — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #21140 has been reported by tenderlovemaking (Aaron Patterson).

23 messages 2025/02/14

[#121077] [Ruby master Misc#21143] Speficy order of execution const_added vs inherited — "fxn (Xavier Noria) via ruby-core" <ruby-core@...>

Issue #21143 has been reported by fxn (Xavier Noria).

15 messages 2025/02/17

[#121142] [Ruby master Misc#21154] Document or change Module#autoload? — "fxn (Xavier Noria) via ruby-core" <ruby-core@...>

Issue #21154 has been reported by fxn (Xavier Noria).

32 messages 2025/02/23

[#121172] [Ruby master Feature#21157] Comparison operator <> — lpogic via ruby-core <ruby-core@...>

SXNzdWUgIzIxMTU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGxwb2dpYyAoxYF1a2FzeiBQb21pZXTF

11 messages 2025/02/26

[ruby-core:121120] [Ruby master Feature#21148] Class proposal: IndefiniteNumeric < Numeric

From: "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date: 2025-02-19 03:27:16 UTC
List: ruby-core #121120
Issue #21148 has been updated by nobu (Nobuyoshi Nakada).


Student (Nathan Zook) wrote:
> The `IndefiniteNumeric` class would serve as a base class for such values.  In particular, it relies on a subclass to define `#value`, which returns a definite `Numeric`.
>
> It is expected that in particular, `<=>` will be overridden for subclasses where `#value` might be slow to return.

It sounds like a role of a `Module`, not a `Class`.
 
> Usually, we will know more than just that the value in question is `Numeric`.  It seems appropriate have `IndefiniteInteger` and so forth.  What is not clear to me is if `IndefiniteInteger` should be a subclass of `IndefiniteNumeric` or of `Integer`.  (Such a thing does not appear to be currently possible.)  If subclassing cannot be, what about defining `#kind_of?(Integer)` to be `true`?

Ruby prohibits so-called diamond inheritance, and uses modules.

What is the necessity that it should be a built-in `Class`/`Module`?



----------------------------------------
Feature #21148: Class proposal: IndefiniteNumeric < Numeric
https://bugs.ruby-lang.org/issues/21148#change-112043

* Author: Student (Nathan Zook)
* Status: Open
----------------------------------------
Suppose someone deals five cards face down from a regulation poker deck, and we wish to reason about the number of aces.  We know that that number is one of zero, one, two, three, or four.  Therefore, if someone asks "is this number larger than negative one?", the answer is yes even without ever needing to resolve the actual value.

This proposal is inspired by the proposed `Enumerable::Lazy::Length` class of Kevin Newton in response to #21135 

The `IndefiniteNumeric` class would serve as a base class for such values.  In particular, it relies on a subclass to define `#value`, which returns a definite `Numeric`.

```ruby
class IndefiniteNumeric < Numeric
   def coerce(other) = value.coerce(other)
   def +(other) = value + other
   def -(other) = value - other
   def *(other) = value * other
   def /(other) = value / other
   def <=>(other) = value <=> other
end
```

It is expected that in particular, `<=>` will be overridden for subclasses where `#value` might be slow to return.

Usually, we will know more than just that the value in question is `Numeric`.  It seems appropriate have `IndefiniteInteger` and so forth.  What is not clear to me is if `IndefiniteInteger` should be a subclass of `IndefiniteNumeric` or of `Integer`.  (Such a thing does not appear to be currently possible.)  If subclassing cannot be, what about defining `#kind_of?(Integer)` to be `true`?

Note: with the length of an `Enumerable` as inspiration, I would argue that an `IndefiniteInteger` might actually value to `Float::INFINITY`, so it should NOT define `<=>` against plus or minus `Float::INFINITY`.





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


In This Thread