タグ

ブックマーク / miura1729.hatenadiary.org (1)

  • yarv2llvmが動き出した - miura1729の日記

    yarv2llvmの生成したコードが動くようになりました。 使い方は、 require 'vmtraverse' としておいて、こんな感じでメソッドを定義します。 YARV2LLVM::compile( <<EOS メソッドの定義 EOS ) 定義したメソッドはRubyで定義したメソッドと同じように使えます。 ベンチマークをやってみました。 llvmfibの+ 0はまだ型推論がうまく行かないためfixnumだよということを明示するためです。無くても型推論できるはずですが、難儀しています。 require 'benchmark' def fib(n) if n < 2 then 1 else fib(n - 1) + fib(n - 2) end end YARV2LLVM::compile( <<EOS def llvmfib(n) if n < 2 then 1 else llvmfib

    yarv2llvmが動き出した - miura1729の日記
    takkaw
    takkaw 2008/11/29
    RubyInlineみたいに書ける様子
  • 1