Math.log(0)の結果は環境依存
FreeBSD上で動かしてたRubyスクリプトがCygwin Rubyでエラーになったので、なんでかなーと思ってたら。
$ ruby --version ruby 1.8.2 (2004-12-25) [i386-cygwin] $ ruby -e 'p Math.log(0)' -e:1:in `log': Numerical argument out of domain - log (Errno::EDOM)
$ ruby --version ruby 1.8.2 (2004-12-25) [i386-freebsd4] $ ruby -e 'p Math.log(0)' -Infinity
…そんな違いが。[ruby-dev:19954]辺りにそんな話を発見。libcの挙動の違いが原因…?