xruby via Matzにっき(2007-01-31)

すごいことですよ。これは。雰囲気につられてちょっとだけ試してみた。

http://code.google.com/p/xruby/downloads/listからファイルを取得

  • libに依存ライブラリが入ってる(ant,antlr,asm,commons-cli,jakarta-oro,jarjar,junit,testjar)
  • sampleにtest.rbが入ってる

ビルド

  • build.batを実行
    • builtin.jarが作られる
    • xruby-0.1.0.jarが作られる(サイズ1282kb)

test.rbを実行してみる

  • >java -jar xruby-0.1.0.jar -c sample\test.rb
    • test.jarが作られる
  • >java -jar test.jar
    • ぼくの環境では最後まで実行できなかったみたい

Hello, Worldを実行してみる

  • hello.rbを作成
puts "Hello,World!"
  • >java -jar xruby-0.1.0.jar -c hello.rb
    • hello.jarが作られる
  • >java -jar hello.jar
"Hello,World!"

生成されるjarの中身を見てみる

  • hello.jarを解凍
  • >jad main.class
package hello;

import com.xruby.runtime.lang.*;
import com.xruby.runtime.value.ObjectFactory;
import com.xruby.runtime.value.RubyArray;

public class main extends RubyProgram
{

    public main()
    {
    }

    public static void main(String args[])
    {
        RubyRuntime.initBuiltin(args);
        (new main()).run();
        AtExitBlocks.invokeAll();
    }

    public RubyValue run(RubyValue rubyvalue, RubyArray rubyarray, RubyBlock rubyblock, RubyModule rubymodule)
    {
        RubyValue rubyvalue1 = RubyAPI.callMethod(rubyvalue, ObjectFactory.createString("Hello, World!"), "puts");
        rubyvalue1;
        if(!rubyvalue1.returnedInBlock()) goto _L2; else goto _L1
_L1:
        return;
_L2:
        return;
    }
}