Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ いやぜんぜん。
鬼車に関して変更したのはこれだけ。
これがsizeof (long) == sizeof (void*) きめうち
な箇所だというのなら、むしろわざわざtypedef
してここだけ直せばいいようにしてあるんだら、十分な配慮がなされていると思う(少なくともRuby本体と同程度かそれ以上には)。
ひょっとするとまだ見落としてる部分があるという可能性は否定しないけど、鬼車のコード中でlong
という型を直接扱う部分はたかが知れてるのでたぶん大丈夫。
_ 先日までmswin32は継続がろくすっぽ動いてなかったのだが、いつまでも放置しておくのはなんなので真面目に問題を追ってko1さんに直してもらった。
_ ... のだが、x64-mswin64だとまだ動かない。
つーかlongjmp()
で即死するのでつまりスタック丸々保存/復元するという方法では何かが足りないらしい。
SEHかなあ...
_ バカ往くを見て、「なんでやねん」と思ったが、これはパーサで-(3**2)
と評価されるのでそういうものらしい(ちなみにわざわざこう評価するために特別扱いされている)。言われてみればそんな気もする。
_ ... のだが、試しに(-3)**2
を計算してみたらやっぱり-9
という結果が出て愕然とする。なんじゃそりゃー!
どうも最近numeric.cにint_pow()
というのが入ってFixnum
の正のFixnum
乗の場合に特別処理をするようになったようなのだが、バグってるらしい。
というわけで中田さんと相談して直しておいた。
_ この件ですが、問題があったのはリポジトリ上のバージョンだけで、リリース版は問題ないです。
さすがにこんなバグがあるのがリリースされてたら困るよね。って今回気付かなかったらそうなってた可能性はそれなりにあるんだけど orz
_ 先日の続き。
いろいろ調べて、いろいろ考えた結果、やはりSEH絡みの問題であろうという結論に達した。
というわけでとりあえずWindowsを騙して問題を回避してみたのだが、よくよく考えるとやっぱりこれじゃだめだ。
どーしたもんだかなあ...
被捕捉アンテナ類
[Ant]
[Antenna-Julia]
[Rabbit's Antenna]
[Ruby hotlinks]