わたなべです.

Yukihiro Matsumoto <matz / netlab.co.jp> writes:

:|では、strtod() がちゃんと機能していないらしく、
:|[ruby-dev:4544] のパッチで、float リテラルが正しく読め
:|なくなったため test.rb 中の "splee 0.1" の 0.1 が
:|死ぬ程デカく評価されてました。
:
:むむむ,よそでも再現するようですね.しかし,0.1が読めないな
:んてそんなバカな….しょうがないので

もちろんそんなことはないはずと調べたら,
extern double strtod(); の宣言が <floatingpoint.h> などと
いう変なヘッダにありました. でかい値になってしまったのは
extern int strtod(); として扱われてしまったからでしょう.
<math.h> が #include <floatingpoint.h> してるから,
単に parse.y で #include <math.h> すれば ok だと思います.

-- 
わたなべひろふみ