Hatena::ブログ(Diary)

miura1729の日記 このページをアンテナに追加 RSSフィード

2008-09-23

llvmrubyを使ってみた

22:09 |  llvmrubyを使ってみたを含むブックマーク  llvmrubyを使ってみたのブックマークコメント

少しいじってみました。主にRubyJITを目指しているruby_vm.rbあたりを主にいじっています。

面白いのですが、まだちょっと完成度が低く感じます。

気づいたこと

  1. Ruby 1.9.0でも古いバージョンを使っているような気がします。新しいバージョンだと動かないところがちょくちょくあります。
  2. Symbolをllvmの形式に変換するSymbol#llvmがうまく動かないようです。みてみるとこれでいいような気がするのですが、なぜかうまく行きません。Symbol#llvmは変数の参照で結構使われていますが、rb_to_idへの引数として使うときは、foo.llvmの代わりにfoo.to_s.llvmとするととりあえず動きます。速度は遅そうですが。
  3. :branchif, :unless, :jumpなどでラベルが使えません。そういうことで、RubyVM::InstructionSequence.compileでコンパイルしてJITで高速実行といったことはまだ出来ないようです。

そういうことで、完成度は低いのですが方向性はばっちりです。すぐにJITが実現されるのではないでしょうか。

オブジェクトファイルがでかいのが欠点ですが。私のところではllvmruby.soが16MBytes以上あります。

トラックバック - http://d.hatena.ne.jp/miura1729/20080923/1222175356