[ruby-list:48855] MacOSX10.8付属のrubyでbignum(?)に問題

From: kimura wataru <kimuraw@...>
Date: 2012-07-26 14:13:21 UTC
List: ruby-list #48855
木村(わ)といいます。

先日リリースされた、Mac OS X 10.8に付属のruby(1.8.7)で
bignumまわりの計算で問題があるようです。

    % /usr/bin/ruby -v
    ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
    % /usr/bin/ruby /usr/bin/irb
    >> 2**62
    => 4611686018427387904
    >> 2**63
    => -9223372036854775808
    # 負の数になるのはおかしい。正しくは +9223372036854775808
    >> 2**64
    => 0
    # 正しくは +18446744073709551616

原因としては、clangでコンパイルされているためのようです。

    % /usr/bin/ruby -rrbconfig -e 'p Config::CONFIG["CC"]'
    "xcrun cc"
    % xcrun cc --version
    Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn)
    Target: x86_64-apple-darwin12.0.0
    Thread model: posix

当面は自前でコンパイルしたrubyを使ったほうが良いかもしれません。
Appleには、rdar://11806241 として報告済みです。
  http://openradar.appspot.com/11806241

影響がどのくらいあるのかわからないのですが、
とりあえず注意喚起のお知らせでした。

-- 
kimura wataru

In This Thread

Prev Next