こんにちは、なかむら(う)です。

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とか。


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