mathn.rb affects Rational literals
$ ruby -e 'p 1.0r' (1/1)
$ ruby -rmathn -e 'p 1.0r' 1
Is this intentional?
Updated by shyouhei (Shyouhei Urabe) over 6 years ago
We looked at this issue at yesterday's developer meeting.
The intension was not made clear, but we confirmed that mathn's global side-effects are the nature of that library. Maybe requiring it implies your willing to accept such surprising behaviour.
Updated by nobu (Nobuyoshi Nakada) over 6 years ago
- Subject changed from math.rb affects Rational literals to mathn.rb affects Rational literals
Just "don't use math"?
Updated by stomar (Marcus Stollsteimer) over 6 years ago
Seems to be triggered by
ext/mathn/complex/complex.c, which activate "canonicalization" in
$ ruby -r mathn/rational -e 'p Rational(2/1)' 2 $ ruby -r mathn/complex -e 'p Complex("3+0i")' 3
I suppose the reasoning behind the behavior was that in mathematics generally the simplest representation of a number is used, and n/1 = n.
But what are the plans for
mathn anyway? -- It seems to be deprecated since 2.2 (#10169).
Updated by naruse (Yui NARUSE) over 5 years ago
- Target version deleted (
mathn is out of scope from release engineering.
Updated by jeremyevans0 (Jeremy Evans) almost 4 years ago
- Status changed from Assigned to Closed
mathn was removed in Ruby 2.5.