githubから最新版を取得
リポジトリはhttps://github.com/mruby/mrubyにある。
$ git clone https://github.com/mruby/mruby.git
|
Make
make
を実行すると、./bin/ 以下に実行ファイル、./build/host/lib/ 以下にライブラリができる。
Rubyのソースをコンパイル
入力ソース例:foo.rb
(0...5).each do |i| puts i end
|
出力されたファイル:foo.mrb
0000000: 5249 5445 3030 3039 3030 3030 3030 3039 RITE000900000009 0000010: 3030 3030 4d41 545a 2020 2020 3030 3039 0000MATZ 0009 0000020: 3030 3030 3030 3030 3030 4434 3030 3032 0000000000D40002 0000030: 3030 3030 2020 2020 2020 2020 4136 4339 0000 A6C9 0000040: 3030 3030 3030 3645 5343 3030 3031 3030 0000006ESC000100 0000050: 3033 3030 3034 3436 3946 3030 3030 3030 030004469F000000 0000060: 3036 3030 4246 4646 3833 3031 3430 3032 0600BFFF83014002 0000070: 3033 3030 3830 3430 4331 3031 3030 3033 03008040C1010003 0000080: 3430 3030 3830 3030 3231 3030 3030 3030 4000800021000000 0000090: 3441 3344 3632 3030 3030 3030 3030 3030 4A3D620000000000 00000a0: 3030 3030 3030 3030 3031 3030 3034 6561 00000000010004ea 00000b0: 6368 3944 4131 3030 3030 3030 3636 5343 ch9DA100000066SC 00000c0: 3030 3033 3030 3035 3030 3034 3438 3339 0003000500044839 00000d0: 3030 3030 3030 3035 3032 3030 3030 3236 0000000502000026 00000e0: 3031 3830 3030 3036 3032 3030 3430 3031 0180000602004001 00000f0: 3031 3830 3030 4130 3031 3830 3030 3239 018000A001800029 0000100: 4641 3445 3030 3030 3030 3030 3030 3030 FA4E000000000000 0000110: 3030 3030 3030 3031 3030 3034 7075 7473 000000010004puts 0000120: 3234 3839 3030 3030 3030 3030 248900000000
|
バイトコードを16進文字列化したものになるっぽい。each
とかputs
とか、ところどころシンボルがそのまま埋め込まれている。
-B
オプションで、C言語のソースコード形式で出力される。
バイトコード実行
$ bin/mruby -b foo.mrb 0 1 2 3 4
|