2009-09-15
rb_get_method_bodyが無くなってる
|Ruby 1.9.2 preview1にアップデートしたところ、yarv2llvmが動かなくなりました。
よく見ると、rb_get_method_bodyが無くなっている模様です。おそらく、nodeをGC対象外にする話の一貫じゃないかなと思います。ちょっと追ってみると、vm_method.cで定義されているrb_get_method_entryが代わりに使えそうです。また、この結果の構造体(rb_method_entry_t)は、method.hで定義されています。
見てみると、rb_get_method_bodyと違ってメソッドキャッシュを使うか使わないかをレイア分けしてあったり(rb_get_method_bodyでは引数にnullを入れるかどうかで判断)、rb_method_entry_tにメソッドの詳細な情報が格納されていていい感じです。
たぶん新しいバージョンに対応するのはすぐなんですが、古いバージョンで動くようにすべきかちょっと迷っています。yarv2llvmのユーザは一人なんだから、常にRubyの最新版しか動きませんでもいいかなと思いますけど、万が一他にユーザがいたら申し訳ないので使っている人がいたらコメントで意見ください。あと、LLVMも2.6になると互換性がかなり失われるのでどうしようかなーと思います。
コメントを書く
トラックバック - http://d.hatena.ne.jp/miura1729/20090915/1253004853
リンク元
- 20 http://www.rubyist.net/~kazu/samidare/
- 3 http://a.hatena.ne.jp/asip/
- 3 http://llvmruby.org/wordpress-llvmruby/
- 3 http://www.google.co.jp/search?q=RFC1213&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 3 http://www.rubyinside.com/llvmruby-a-compiler-toolkit-available-to-rubyists-1362.html
- 2 http://d.hatena.ne.jp/keyword/LLVM
- 2 http://k.hatena.ne.jp/keywordblog/LLVM
- 2 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=u3&q=rgplot&btnG=検索&lr=lang_ja
- 2 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=RB_FOREACH&num=50
- 1 http://74.125.153.132/search?q=cache:Yv9mfGXyYEoJ:k.hatena.ne.jp/keywordblog/LLVM?page=2+LLVM+TCE&cd=3&hl=ja&ct=clnk