June 01, 2013mRubyとC++の親和性オートパイロットシステムTinyFeatherにmRubyを載せて遊んでいます。最近はextend_sample.rbに示したようなRubyのコードで誘導制御の部分も動くようになりました。これはmRubyから既存のコードを呼び出すことで可能となったのですが、既存のコードの大半はC++で書いてあります。せっかくなので、mrubyをC++のオブジェクト指向を意識して融合することにしました。 mRubyはC言語で書いてあります。そういった事情からC++のオブジェクト指向的な方法でコードを融合するのは難しいのでは、もしかしたらmRuby自体の書き換えが必要かも、と思っていたのですが、そんなことはありませんでした。 mrb_state構造体の定義はmruby.hにあり、そこには/* auxiliary data */のコメントがあります。補助データ、ということでとても匂います。 TinyFeatherではこれらのテクニックをshell.cppのかなり後の部分(930行目付近)で使っています。なおshell.cppはmRubyと既存のコードの糊として働いている部分です。 コメント
コメントする
|
スポンサード リンク
|