Project

General

Profile

Backport #2660

Updated by jeremyevans0 (Jeremy Evans) almost 5 years ago

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

Back