2008-11-27
本日のyarv2llvm
|すっかりChangeLogと化しています
本日はこんなことをしました。
バグの修正
def tgc i = 320000 b = [1] while i > 0 a = [1, 2, 3, 4, 5, 7, 8] c = [1, 2, 3, 4] i = i - 1 end b end
こんなプログラムで、GCをいじめたら落ちてしまいました。GC周りかなと思ったら、そうではなく新たな配列を生成するrb_ary_new4の引数の1つの初期値配列をallocaで取っているのですが、それをループ内で行ったので、スタックオーバフローしていました。メソッドの先頭でallocaをするようにしました。
クラス・メソッドのサポート
これまで、クラス・モジュールは無視だったのですが、意識するようにしました。Math.sqrtとsqrtは別物になります。ただし、レシーバーのクラスは静的に一意に決まる必要があります。つまり、ポリモフィズムはできないし、将来もできないです。
コメントを書く
トラックバック - http://d.hatena.ne.jp/miura1729/20081127/1227788609
リンク元
- 52 http://www.rubyinside.com/llvmruby-a-compiler-toolkit-available-to-rubyists-1362.html
- 44 http://66.196.80.202/babelfish/translate_url_content?.intl=us&lp=ja_en&trurl=http://d.hatena.ne.jp/miura1729/20081012/1223785541
- 24 http://www.google.com/reader/view/
- 23 http://llvmruby.org/wordpress-llvmruby/
- 13 http://www.rubyist.net/~kazu/samidare/
- 6 http://planetrubyonrails.com/
- 4 http://www.google.com/reader/view/?tab=my
- 4 http://www.planetrubyonrails.com/
- 3 http://www.rubyinside.com/
- 2 http://a.hatena.ne.jp/fujita-y/detail