Kishima's Hateda log

はてなダイアリー記事の保管庫

軽量Rubyの状況まとめ

4/28追記:まだ正式ではないけど公開されたよ! https://github.com/mruby/mruby

神よ 未だ生まれぬ神よ
御身への想い押さえがたきに
我が身は今やはりさけぬ
古橋秀之ブライトライツ・ホーリーランド

そろそろ軽量Rubyが公開されるらしい、との話なので、現状見つかる情報を調べてみました。
ほんとは2月の東京Rubyプレゼンテーション2012に行けていれば色々分かったと思うのですが、行けなかったのでネットにある情報を検索してみた次第です。
以前は"Armadillo9でRubyを動かす。"とかやってたりしたこともあり、組み込みスクリプト言語には色々期待してるので、楽しみ。
公開されたら色々遊んでみる予定。

構成

  • mruby

 コンパイラ、RiteVM、ライブラリなどを含めた総称

  • RiteVM

 YARVに相当する部分

 VM自体をハードウェア化するのではなく、性能的に重要な機能をエンハンスするもの。(例:ハッシュ、GC)必須という訳ではない。

ターゲット

OSは選ばず動作するように、各種のシステムコールには依存せずC99の範囲で実装されている。Linux、μITRONVxWorksなどで動く。
対象領域としては、まつもとさんの発言によれば、

  • 携帯電話
  • ロボット
  • TV

など、とのこと。
ハードウェアリアルタイムな制御まで行うことは想定していないようなので、比較的高級な組み込み機器への適用を想定しているように見えます。なのでロボット制御とかには向いてなさそうですが…。

こちらの動画を見ると、RubyのソースをC言語へ静的変換しているようです。どういう関係なのだろう。(ETロボコンの開発環境の一つとして検討されているようです)
こちらの資料だと、まずは産業向けの通信装置として使うことをとっかかりにしていきたいとあります。
μITRONのタスク間通信などはどんな感じに実現されるのだろうか?

特徴

mruby

  • RiteVM
  • parser
  • code generator
  • mruby Ruby lib
  • mruby C lib
  • binary I/O

RiteVM

  • 32bit word machine
  • incremental GC
  • single thread
  • register machine
  • 必要なメモリは数MB程度

機能

  • 省メモリ
  • ブロック,Proc,lambda、例外など対応
  • 割り込みには非対応
  • evalはライブラリとして提供されるコンパイラを組み込むことで、実現可能

プロファイル

  • minimal

 最小構成

  • standard

 IEC/ISOの範囲

  • full

 CRuby

公開時期

2012年4月ごろgithub?で公開らしい。
こちらあたりで告知があるのかもしれない。

ライセンス

BSDライセンス、もしくはMITライセンスを検討するとニュース記事にはあったけど、最終的にはどうなるんだろうか?少なくとも制限が強いライセンスにはならないようだけど。

研究開発してるところ

その他