その軽さを生かして、WebAssembly化。web上クライアントサイド記述言語としての可能性を探ります。
「mruby on web」
アプリを開き、mruby 2.0 以降でコンパイルした、中間コード mrb ファイルをドロップ。
VMがバイトコードを実行し、最終値を表示します。
サンプルプログラムとお試しバイナリ sum.mrb
a = 100 sum = 0 while a>0 sum += a a -= 1 end sum
必要なメソッドなどは、emb_method内に実装すればOK!
DOM操作などをつければ、クライアントサイドのプログラムをRubyでサクサク書いちゃうことも可能ですね!
WebAssmeblyのバイナリである、wasmファイル、4KBを超える場合 Web Workers を使う必要があります。
その場合、Web Workers を使った「murby on web - over 4KB」を参考にどうぞ!
WebAssemblyのコンパイル、現在はこのようにしています (Mac)
PRJ=test-wasm clang -emit-llvm --target=wasm32 -S -I../ -Os $PRJ.c llc $PRJ.ll -march=wasm32 s2wasm --allocate-stack 100000 $PRJ.s > $PRJ.wast wast2wasm -o $PRJ.wasm $PRJ.wast
mruby、いろいろ活用方法探ってみます!
mruby で、Ruby on Jam、Windows環境でもコンパイルと転送、できたとのこと!
「mrubyがIchigoJamで動くらしい 第4回戦 - Qiita」