これは・・・Rubyのバグ?
ubuntu 10.10 + Ruby 1.8.6-p399で日付関係の挙動がおかしい。
例えば、Date.todayをすると正しくは
irb(main):002:0> puts Date.today 2010-12-20 => nil irb(main):003:0>
とならなければいけないのに、次のようになっていた。
irb(main):002:0> puts Date.today 2118--1-33334 => nil irb(main):003:0>
これの原因がさっぱりだったのだが、
色々調べてみて、ふと次のコマンドを打ってみた。
irb(main):004:0* puts 3.1*3000 93000.0 => nil irb(main):005:0>
( ゚д゚) ・・・ (つд⊂)ゴシゴシ (;゚д゚) ・・・ (つд⊂)ゴシゴシゴシ _, ._ (;゚ Д゚) …!?
ちなみにCentOS5.5上にruby-1.8.6-p399をインストールして実行してみると、
ちゃんと次のようになりました。
irb(main):004:0* puts 3.1*3000 9300.0 => nil irb(main):005:0>
で、gcc-4.4.5でコンパイルしていたのですが、
gcc-4.3.5に落としたら、ちゃんと計算してくれました。
(上記のCentOSだとgcc-4.1.2)
gccのバージョンでここまで差が出るとは・・・。