Yuya Kato
yuyak****@gmail*****
2007年 3月 20日 (火) 17:14:19 JST
Yuyaです。 > vrubyの例では、以下の修正で動作することは確認したのですが、ご意見を頂き > たく。 > 方針: soの場合、rb_preloadedではなくrb_feature_p を利用してロード済みか > どうかを判断する。 ruby-devの該当スレッドとパッチを軽く読みました。 残念ながら詳しく見る余裕はないので少々無責任な発言ですが、 適用して良いと思います。 細かい点を言えば: * rb_feature_p関数のアクセス修飾子を直接変更するのではなく rb_feature_p関数を呼び出すだけの非staticな関数を追加して Exerb側からはその関数を使用すると、パッチが読みやすくなるかも しれません。 * 下記の変更の変更は不要かと思います。 > - const char *ext = ::strrchr(RSTRING_PTR(feature), '.'); > + const char* ext = strrchr(RSTRING_PTR(feature), '.'); 改めてexerb.cppを読んでみると、「type* name」だったり「type *name」 だったりと、統一感がないですね。 require周りはきちんと整理したいと以前から思っているのですが、 現状さっぱりです。Ruby 1.9でもrequireの仕様がかわったはずなので、 そちらも調べようと思いつつ・・・。 やろうと思いつつ、実現できていない項目としては: * Ruby 1.8のrequireの仕様を調査 * Ruby 1.9のrequireの仕様を調査 * require周りのコールグラフの作成 * 拡張子、内部/外部などの優先順位の整理 * load、autoloadへの対応 * 真面目なパス解析 などがあります。 時間があれば・・・。 --- Yuya.