タグ

mrubyに関するmaisenakajimaのブックマーク (4)

  • カスタムアロケータとC++のnew - kyabの日記

    mruby Advent Calendar 2013 - Qiitaの19日目の記事です。 mrubyでカスタムアロケータを使う mrubyを使うときは、まずmrb_open()を呼ぶわけですが、mrb_open_allocf()という独自のアロケータを指定できる亜種があります。 mrb_state* mrb_open_allocf(mrb_allocf, void *ud); mrb_allocfは次のようにtypedefされています typedef void* (*mrb_allocf) (struct mrb_state *mrb, void*, size_t, void *ud); mrb_allocf()の引数ですが、2番目のvoid *はreallocする場合の元の領域へのポインタ(新しい領域ならNULL), size_tには確保したいサイズ(バイト数。0の場合は解放しろという

    カスタムアロケータとC++のnew - kyabの日記
  • WebAPIのCLIクライアントの試作 - Qiita

    最初に すいません、requireではありません。 今日は、コマンドラインからWebAPIを利用するためのCLIクライアントを作成しようかと思います。 作成するアプリでは、mruby Advent Calendarで @kaishuu0123さんが作成してくださったmruby-readlineの他、多く方々が作成されたgemを利用させていただいています。mruby/mrubyデフォルトのgemに加えて、下記のgemを利用しています。 作者の方々には、この場を借りてお礼申し上げます。 conf.gem :github => 'kaishuu0123/mruby-readline', :branch => 'master' conf.gem :git => 'https://github.com/iij/mruby-regexp-pcre.git' conf.gem :git => 'http

    WebAPIのCLIクライアントの試作 - Qiita
  • どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita

    みなさーん、プログラマの石川某くんはいつもデスマにはまっていていつJITの勉強しているんだろと思ったことはありませんか?その秘密は、mruby-meta-circular。Cも機械語も使いません。だから、忙しい某君にもできるのです。サンプルCoDeを無料で送ります。続きはWebで というわけで(どういうわけだ(定番の突っ込み))、mrubyとmrubyのVMであるRITE VMの命令だけでTracing JITの仕組みを解説しようと思います。 mrubyのJITと基的な構造は大体同じです。 インタープリタ 初めにベースになるVMを見てみましょう。おそらく世の中で2番目にたくさん作られているプログラム、フィボナッチ級数それだけが動くよう注意深く命令セットが選ばれています。これから先、このVMをFibVMと呼びます。また、mrubyのVMはRITE VMです。 この2つを区別することが非常に

    どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
  • GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita

    Code on Rmakeにてmrubyゲームを記述する言語として組み込んでみました。 そのとき以下のような場面によく遭遇しました。 マウス入力を受け取るProcオブジェクトpをC++側の変数に保存する関数を呼ぶ ↓ ほかのmrubyの処理をおこなう。 (このときgcが発生してpのメモリーが解放されてしまう) ↓ マウス入力をおこなう ↓ pを呼ぼうとするがメモリーが解放されているためアプリケーションが落ちる これだと困るので、pをgcされないようにはどうしたらいいかなと考えました。 Code on RmakeではC++からmrubyのメソッドの呼び出しを超えて 生存することが期待されるobject(上の例だとp)は、定数Hashを用意して そこに入れることでgcの対象にならないようにしました。 以下でコードの解説をしますが、 cのサンプルコードは長くなってしまったので記事の最後に配置し

    GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita
  • 1