観察日記 2011-05-30

そういえばそういえば、include/ruby/*.hってあんなに分ける意味あるの?
そんなわかれてたっけ
うわ、すげーわかれてる
missing.h、oniguruma.h、st.h、util.hには分かれてる意味がある。
ruby.hとdefines.hとintern.hの使い分けがよくわかってない
あとwin32.hか
win32.hっていつのまにかここに来てたんだ
utilはmissingとかで使うんだっけ?
win32.hはinstall対象なのでこっちに移動されてました。
俺が挙げた4つのヘッダのうち後ろ3つは、よそからパクってきたもの系なので由来自体が別
util.hはmissingとは限らない
ライセンスも違ったりするので分かれてることに意味が見出せる。
intern.hはincludeに移動させたくなかったんだが
もともとは対応する.cと組になってるよね
よね
あぁ、util.cか
subst.hとか初めて見たな。
なぜ分離してるのかは見てもよくわからない。
僕とかはヘッダ分割しまくりたい派なので、まだ粗いかなーとか思ってたりするんですけどね。
対応する.cと関連させて分割?
そこまでいかんでもいいけど
subst.hはwin32.hから分離したんじゃなかったっけ
知らぬ
intern.hってinternalなの?
stringとかarrayはヘッダを切り出してもしゃーないと思うのだが(そして実際されてないが)
intern.hは公開じゃないの
例えばrandomとかどっか行け感
intern.hは意味分からんよね。
よくわからんからruby.hに統合したい
slapではその反省を胸に、internal.hという名前にした上でインストールされなくした。
capi.hとかに切り出すか
cいらん
api.hでおk
きゃぴ
nahi.h
patc.h
RUBY_EXTERNを付けて回る旅
って、誰か同意してくれるかしら
それの意味を
公開APIですよマーク
まぁいいんじゃないでしょうか
RUBY_EXTERNって既存?
既存ですよ。
defines.hに定義があるよ。
#define RUBY_EXTERN extern
グローバル変数にはこれが使われてもいる。
なるほど
関数に付けなかったのは、単にめんどくさかった以上の理由はないはず。
なるほど<めんどくさい
(変数に付けないといけないのにはそれなりに重大な理由があるけどプラットフォーム依存なので略)

intern.h話追えてないなー
intern.hの話題が発端ってどこだ
バイナリ互換の話から
前からCAPIをもうちょっと明確にしたいという話があった
なぜ明確にしたいかというと、公開APIを明らかにすることによって、非公開なAPIを明らかにでき、それを踏んだやつを勝手に死ねと切り捨てやすくなるから
なるほど
非公開ですぅ、っていうコメントがあるやつ以外は全部公開
という定義だったっけ、今?
うん
デフォルト公開はよくないってPerlで学んだだろっていう
Perlしらん
$foo = 1;だとグローバル変数になる>Perl
my hogehogeしないといけないんだっけ
非公開ですぅ、というコメントの例が見当たらない
/* @internal */ だった気がするんだが
defines.hにあるな
すごい不吉だ
... いや、internalだからいいのか
ruby.hにも1個見つけた
rb_classext_tの定義、か。隠せばいいのに。
ext/objspaceとかいうとんでもないところで使ってた。
直下にinternal.hとか用意したほうがいいんじゃないかと思わないでもない
slap思想に毒された!
というか自然な発想だけどな。
objspaceはextconf.rbで-I$(top_srcdir)つければいいよ
俺もそんな気がする。
coverageとかripperとか-test-でやってる
つーかobjspaceでもつけてるじゃん
変えちゃっていいんじゃないスカね
移動させるならどこかな
internal.h新設しようよ
今度はそこに全部ぶち込まれそうな
include/ruby/internal.hじゃなくて、topdir/internal.h
それは分かってる
ext/digest/digest.cでも使ってやがった
非公開ファイルに突っ込まれるんだったら問題ないじゃん
公開APIにしてほしい人はドキュメント添えてinclude/ruby/下に移してくれといえば良い
rb_class_superclass()を生贄にRCLASS_SUPERを非公開
http://www.atdot.net/sp/raw/frmbll こんなところかな
良いと思います
intern.hって結局どういう意味なんだっけ