Home > yarv2llvm

yarv2llvm

Yarv2llvm is a project mainly written in Ruby, it's free.

yarv2llvm -- Yarv to LLVM Translater

-- Description yarv2llvm is Yarv to LLVM translater. yarv2llvm will try for type inference.

-- Install yarv2llvm has need of llvmruby of ruby gem version (http://github.com/tombagby/llvmruby/tree/master)

  1. Install llvmruby

  2. Copy yarv2llvm.rb and ./lib/. to any directory which is in the ruby library path.

    yarv2llvm need ruby1.9.2 or later. If you want to use ruby 1.9.1, you must install methopara (http://github.com/genki/methopara/tree/master).

-- Usage

require 'yarv2llvm' YARV2LLVM::compile("Method definition in string") method(args)

For example

require 'yarv2llvm'
YARV2LLVM::compile('def fact(n);if n == 0 then 1 else n * fact(n -1);end;end')   
p fact(5)  # -> 120

You can also use yarv2llvm as subset Ruby compler. For example

ruby19 yarv2llvm.rb bm_so_nbody.rb
-0.169074947
-0.169083520

-- Limit yarv2llvm accepts very small subset of ruby. I will grow the subset yarv2llvm accepts. The subset of current version appears "test/test_compile.rb" .

-- BUGS If you apply bad program for yarv2llvm, you must break the code from yarv2llvm.

-- Author Miura Hideki (miura1729) e-mail: m-72 at tf6.so-net.ne.jp blog: http://d.hatena.ne.jp/miura1729 (in Japanese)

-- License

under the Ruby's License

"sample/ao-render.rb" is under BSD3 Original version was written by Syoyo Fujita.

Previous:Mono