2012/6/15 U.Nakamura <usa / garbagecollect.jp>:
> こんにちは、なかむら(う)です。
>
> In message "[ruby-dev:45748] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult"
>    on Jun.15,2012 17:29:57, <ko1 / atdot.net> wrote:
>> > 何でvoid*なのか一瞬考えたことがあったので、明示するのは悪くないと思います。
>> > 混ざってるならそれは見落としですね。
>>
>>  個人的には,opaque ってなんじゃらと混乱しましたので,よくわからんポイ
>> ンタだとわかる void * のほうが好きなのですが.hoge_opaque_t ってのは,よ
>> く知られた表現なんですかね?
>>
>>  この辺は,bikeshed になるでしょうか.どうしたもんですかね.
>
> どう考えてもbikeshedだよなあ、と思いますが、敢えて参戦します。
> まず、rb_opaque_tというのは何も「明示」してないので、void *と
> 比べてマシになっているとは思えません。
> 名前の付けられない何かであるということを明示したいのなら、
> void *で十分と思います。
>
> 実際には、rb_opaque_tを返す関数を見る限りでは、これはコンパイ
> ル結果であろうことは容易に推察できます。
> また、rb_opaque_tを受け取る関数を見る限りでは、これはnodeなの
> であろうということも推察できます。
> というわけで、「コンパイル結果でありnodeである」ということを
> 示す名前をつけるのが妥当ではないでしょうか。
> あんまりいい名前ではないですが、rb_compiled_node_tとか。

NODEじゃないんですよね実は。受け取る関数の名前は単なる1.8時代の名残であって現在はiseqです。
こんな風に、APIレベルでは中身について詮索すると幸せにならないのでopaque dataとしてあつかってほしい訳です。
void*でもruby_opaque_tでも変わらないよ、というのは一つの意見としてあり得ますが、今更nodeというのはないと思います。

>
>
> それでは。
> --
> U.Nakamura <usa / garbagecollect.jp>
>
>



-- 
Yuki Sonoda (Yugui)
yugui / yugui.jp
http://yugui.jp