Bug #2660
compatibility issue of BigDecimal#** and #power
| Status: | Open | Start date: | ||
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | - | % Done: | 0% |
|
| Category: | - | |||
| Target version: | - | |||
| ruby -v: | ruby 1.9.2dev (2009-11-16 trunk 25792) [i686-linux] |
Description
まつもとさんか卜部さん
遠藤です。
BigDecimal#** と #power の仕様変更が trunk から ruby_1_8 にバックポート
されていますが、これは 1.8.7 以前と比べて非互換な変更です。
$ ruby -v -rbigdecimal -e 'p BigDecimal("Infinity") ** -5'
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
#<BigDecimal:b7c45204,'NaN',4(8)>
$ ruby18 -v -rbigdecimal -e 'p BigDecimal("Infinity") ** -5'
ruby 1.8.8dev (2010-01-26 revision 26430) [i686-linux]
#<BigDecimal:b7d18c80,'0.0',4(8)>
$ ruby19 -v -rbigdecimal -e 'p BigDecimal("Infinity") ** -5'
ruby 1.9.2dev (2010-01-26 trunk 26420) [i686-linux]
#<BigDecimal:824cf7c,'0.0',4(8)>
変更内容は [ruby-dev:36159] の 1 つめの、「Infinity の累乗を NaN でなく
0 や Inf や -Inf にする」というものです。
1.8.8 に非互換な変更を入れるのはよくないと思うのですが、
- 1.8.7 以前のバグだった (1.8.6/1.8.7 にもバックポートすべき)
- 1.9 からの仕様変更 (ruby_1_8 へのバックポートは revert すべき)
のどちらと考えるべきでしょうか。rubyspec への修正依頼に影響します。
--
Yusuke ENDOH <mame@tsg.ne.jp>
History
Updated by shyouhei (Shyouhei Urabe) over 2 years ago
Yusuke ENDOH さんは書きました: > 1.8.8 に非互換な変更を入れるのはよくないと思うのですが、 やむをえない時はやむをえないと思いますが、このケースはどうなのかな > - 1.8.7 以前のバグだった (1.8.6/1.8.7 にもバックポートすべき) > - 1.9 からの仕様変更 (ruby_1_8 へのバックポートは revert すべき) > > のどちらと考えるべきでしょうか。rubyspec への修正依頼に影響します。 バグだったという判断なら1.8.7にもバックポートします。個人的にはどっちでもいい気 がします。
Updated by shyouhei (Shyouhei Urabe) over 2 years ago
卜部です Tadashi Saito さんは書きました: > が成り立たないならば、この国の高校生が習う数学すら否定する系を けど 3/2 # => 1 な系を採用してるしなあ。
Updated by naruse (Yui NARUSE) over 2 years ago
- Priority changed from Low to Normal
- ruby -v set to ruby 1.9.2dev (2009-11-16 trunk 25792) [i686-linux]