タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

mrubyとgcに関するgom68のブックマーク (2)

  • アリーナのかいしんのいちげき - mirichiの日記

    mrubyにはmrb_gc_arena_save()/mrb_gc_arena_restore()という関数があって、これを使わずにCでオブジェクトを作りまくるとエラーでコケる。この件について作者のMatzが直々に日記を書いておられる。(http://www.rubyist.net/~matz/20130731.html#p01) mrubyとC言語とGCの問題点とその解決策を説明してくれているのだが、これを読んでもなんとなく微妙にわからない。という人は多いのではないかと思う。mrubyのGCを読んだことある人ならわかるんだろうけども。 で、俺も何か書いてみようと思ったわけだ。余計わからなくなるかもしれないが。しかしmrubyのarenaまわりのAPIはかなり内臓が飛び出したような設計だと思うので、使う人がGCとかオブジェクト管理を少し知らないといけないんじゃないかと。 ■さわり まず前提

    アリーナのかいしんのいちげき - mirichiの日記
    gom68
    gom68 2013/08/04
  • mrubyのGCの仕組みを調べた - ブレ男のブログ

    2013年4月18日木曜日 mrubyのGCの仕組みを調べた 時刻: 0:09 動機 LuaのAPIは、Lua内部で扱われる値に関してスタック上であれこれ操作出来るだけで、値自体を直接取得したり作成することはできない。値を取り出したいときはスタック上のある場所にある値の型を調べて、その型の値を取り出すAPIを呼び出す、という具合になっている。この場合、処理系で扱う値はすべて処理系側で管理されているので、ガベージコレクト(GC)できるのもわからんでもない。 しかしmrubyAPIではスクリプト内部で扱う値をmrb_valueとしてC言語側に直接取り出せる。この場合処理系の管理を逃れてしまうことはないのか。またCの関数でmrubyのオブジェクトを作成した瞬間にGCが走った場合に、まだmrubyで管理している変数からの参照がなくて、解放されてしまったりしないのか。 大昔の事しか知らないけど

    gom68
    gom68 2013/05/06
  • 1