福野泰介の一日一創 - create every day

Ruby on Jam を実現した、mrubyVMの軽量実装「mruby-l1vm
その軽さを生かして、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

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像