Project

General

Profile

Bug #2660

compatibility issue of BigDecimal#** and #power

Added by mame (Yusuke Endoh) over 9 years ago. Updated about 8 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-11-16 trunk 25792) [i686-linux]
[ruby-dev:40165]

Description

=begin
まつもとさんか卜部さん
遠藤です。

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

$ ruby18 -v -rbigdecimal -e 'p BigDecimal("Infinity") ** -5'
ruby 1.8.8dev (2010-01-26 revision 26430) [i686-linux]
#

$ ruby19 -v -rbigdecimal -e 'p BigDecimal("Infinity") ** -5'
ruby 1.9.2dev (2010-01-26 trunk 26420) [i686-linux]
#

変更内容は [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
=end

History

#1

Updated by shyouhei (Shyouhei Urabe) over 9 years ago

=begin
Yusuke ENDOH さんは書きました:

1.8.8 に非互換な変更を入れるのはよくないと思うのですが、

やむをえない時はやむをえないと思いますが、このケースはどうなのかな

  • 1.8.7 以前のバグだった (1.8.6/1.8.7 にもバックポートすべき)
  • 1.9 からの仕様変更 (ruby_1_8 へのバックポートは revert すべき)

のどちらと考えるべきでしょうか。rubyspec への修正依頼に影響します。

バグだったという判断なら1.8.7にもバックポートします。個人的にはどっちでもいい気
がします。

=end

#2

Updated by shyouhei (Shyouhei Urabe) over 9 years ago

=begin
卜部です

Tadashi Saito さんは書きました:

が成り立たないならば、この国の高校生が習う数学すら否定する系を

けど 3/2 # => 1 な系を採用してるしなあ。

=end

#3

Updated by naruse (Yui NARUSE) over 9 years ago

  • Priority changed from 3 to Normal
  • ruby -v set to ruby 1.9.2dev (2009-11-16 trunk 25792) [i686-linux]

=begin

=end

Also available in: Atom PDF