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

From: KOSAKI Motohiro <kosaki.motohiro@...>
Date: 2012-07-30 15:40:49 UTC
List: ruby-list #48857
(7/26/12 10:13 AM), kimura wataru wrote:
> 木村(わ)といいます。
> 
> 先日リリースされた、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

ここで提案されてるパッチはtrunkにはもうコミットされてるんでしたっけ?
volatile足してるだけなので入れてしまっていいように見えるのですが


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


In This Thread