monami-ya.mrb での Static Thread Binding サポート

注: 2014-06-17 00:30:00JST バグフィックスがあったので,コードの引用を修正し,体裁も整えました.

昨日で,monami-ya.mrb への sandbox サポートについて,峠を超えました.

当日記でも,実装背景について取り上げました.

その際,sandbox が必要な理由の説明で,スレッドの使い方について説明しました. つまり,monami-ya.mrb は,下位層にスレッドライブラリ(RTOS含む)の存在を暗黙的に期待しています.

RTOS 含めると,動作が重くなるんじゃないの?

みたいなことを仰る方も,世間には稀にいます. それは概ね誤解です. その辺りの話は,別の機会に取り扱いましょう.

注: 本稿は,mruby のビルドシステムと,uITRON4.0 仕様でのアプリケーション記述についての知識があることを前提として書かれています.

目指せ,ゆるふわ組み込みライフ

monami-ya.mrb が Sandbox サポートを追加する理由

先ほどの続き.

など言って,実装理由を詳説しないのは,ちょっとイケ好かないかなということで.

本題に入るには,OS が提供する thread の使い方について,寄り道をする必要があります.

注: 本稿は,mruby の内部構造,特に,mrb_state と mrbgems の関係を理解していることを前提にしています.

monami-ya.mrb での Sandbox サポート

たぶん会社の公式サイトに乗るべき情報のような気もしますが. まだ master ブランチどころか develop ブランチにも入っていないので,メモとして,こちらに書いておきます.

mruby の機器組み込み向け fork である monami-ya.mrb に,mrbgems の sandbox 機能を追加しました. 何故この機能が必要なのか,という話は後日するとして,どう使うかということを記しておきます. master ブランチに入るまでに,API 等の変更があるかもしれません.

また,mruby 本体に取り込まれるかどうかは,解りません.

機能概要