[#30232] [patch] rb_type(): シンボル型に対する型判定が怪しい — "Yoshinori Sano" <yoshinori.sano@...>
さの よしのり です。
6 messages
2007/02/01
[#30241] 質問: 関数風メソッド呼び出しのYARV命令列について — "Yoshinori Sano" <yoshinori.sano@...>
さの よしのり です
7 messages
2007/02/01
[#30259] getinstancevariable2 — SASADA Koichi <ko1@...>
ささだです。
5 messages
2007/02/05
[#30263] exception on Singleton — SASADA Koichi <ko1@...>
ささだです。
10 messages
2007/02/05
[#30273] Re: exception on Singleton
— SASADA Koichi <ko1@...>
2007/02/05
ささだです.
[#30332] Re: exception on Singleton
— SASADA Koichi <ko1@...>
2007/02/14
ささだです。
[#30284] Re: 1.8.5 release on 3/3 — Urabe Shyouhei <shyouhei@...>
卜部です。1.8.5も3/3に同時リリースするといいと思いました。
14 messages
2007/02/06
[#30293] Re: 1.8.5 release on 3/3
— Shugo Maeda <shugo@...>
2007/02/06
前田です。
[#30307] Re: [ruby-cvs:18927] Ruby:r11679: * ext/thread: Make style fixes (mostly de-K&R'ism) to match the — Nobuyoshi Nakada <nobu@...>
なかだです。
8 messages
2007/02/09
[#30312] Re: [ruby-cvs:18927] Ruby:r11679: * ext/thread: Make style fixes (mostly de-K&R'ism) to match the
— "Akinori MUSHA" <knu@...>
2007/02/10
At Sat, 10 Feb 2007 00:00:44 +0900,
[#30321] [ruby_1_8] can't grub Digest::SHAxxx on powerpc-darwin — Tadashi Saito <shiba@...2.accsnet.ne.jp>
こんばんは。斎藤と申します。
5 messages
2007/02/11
[#30328] Re: [ruby-cvs:18955] Ruby:r11707: * ext/win32ole/win32ole.c (ole_variant2val): support VT_I8, VT_UI8. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
3 messages
2007/02/13
[#30338] backporting URI to ruby_1_8 — "Akinori MUSHA" <knu@...>
lib/uri を trunk から ruby_1_8 にマージします。
7 messages
2007/02/14
[#30362] Re: class local instance variable — "Park Ji-In" <tisphie@...>
44GT44KT44Gw44KT44Gv44CC5py0IOiKneWNsCDjgajnlLPjgZfjgb7jgZnjgIIKCuWIneOCgeOB
5 messages
2007/02/16
[#30373] Ruby 1.8.6 preview1 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 preview1 をリリースしました。
5 messages
2007/02/17
[#30396] unsupported: th_call0 in 1.9 — "KUBO Takehiro" <kubo@...>
久保です。
5 messages
2007/02/21
[#30404] ruby-1.8 で SEGV — Tomoyuki Chikanaga <chikanag@...>
日本コントロールシステム(株)の近永と申します。
6 messages
2007/02/24
[#30433] Re: ruby-1.8 で SEGV
— Chikanaga Tomoyuki <chikanag@...>
2007/02/26
日本コントロールシステム(株)の近永と申します。
[#30407] Arrayのメソッド増強について — Minero Aoki <aamine@...>
青木です。
7 messages
2007/02/24
[#30408] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 preview2 をリリースしました。
20 messages
2007/02/24
[#30414] fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released)
— Hidetoshi NAGAI <nagai@...>
2007/02/25
永井@知能.九工大です.
[#30418] Re: fail to autoload at $SAFE==4 (Re: Ruby 1.8.6 preview2 has been released)
— Nobuyoshi Nakada <nobu@...>
2007/02/25
なかだです。
[#30419] Re: fail to autoload at $SAFE==4
— Hidetoshi NAGAI <nagai@...>
2007/02/25
永井@知能.九工大です.
[#30434] Re: fail to autoload at $SAFE==4
— Nobuyoshi Nakada <nobu@...>
2007/02/27
なかだです。
[#30435] Re: fail to autoload at $SAFE==4
— Hidetoshi NAGAI <nagai@...>
2007/02/27
永井@知能.九工大です.
[#30437] Re: fail to autoload at $SAFE==4
— "Nobuyoshi Nakada" <nobu@...>
2007/02/27
なかだです。
[#30412] fastthreadについて — Shugo Maeda <shugo@...>
前田です。
9 messages
2007/02/25
[#30439] Re: MIME decoding confused by non-MIME characters — Urabe Shyouhei <shyouhei@...>
-devに振ってみる。
9 messages
2007/02/27
[#30440] Re: MIME decoding confused by non-MIME characters
— "H.Holon" <holon@...>
2007/02/27
はじめてこちらには postします。相馬と申します。
[#30441] Re: MIME decoding confused by non-MIME characters
— "H.Holon" <holon@...>
2007/02/27
相馬です。
[#30445] Re: MIME decoding confused by non-MIME characters
— "H.Holon" <holon@...>
2007/02/27
相馬です。
[ruby-dev:30434] Re: fail to autoload at $SAFE==4
From:
Nobuyoshi Nakada <nobu@...>
Date:
2007-02-27 02:00:40 UTC
List:
ruby-dev #30434
なかだです。
At Mon, 26 Feb 2007 00:50:48 +0900,
Hidetoshi NAGAI wrote in [ruby-dev:30419]:
> > > $SAFE==0 などで autoload が適切に設定されている場合,
> > > $SAFE の値に無関係にきちんと load されるべきと思いますし,
> > > 事実,これまではそのように働いていたのですが,
> > > 20070219 の commit の結果,うまく機能しないようになっています.
> >
> > すいません。これでどうでしょう。
>
> ありがとうございます.動くようになりました.
> ruby_1_8 および ruby_1_8_6 への commit をよろしくお願いいたします.
現在のコードがsearch_required()を呼ぶようになっている理由は、
requireは拡張子が指定されていなければ.rb, .soなどを探すという仕
様だからです。つまり、もしすでに拡張ライブラリがロードされてい
たとしても、$LOAD_PATH中におなじfeature名の. rbファイルがあれ
ば、そちらが優先されるためにrb_provided()はfalseを返さなければ
なりませんが、前回のパッチでは拡張ライブラリとスクリプトライブ
ラリの両方がある場合には対応できません。
ということで考えたのが、以下の二つの案です。
(1) safe_levelを指定して探してくれるrb_provided()を追加する
(2) rb_provided()は拡張ライブラリについてはあきらめる
rb_provided()はautoload関連でしか使われていないので、とりあえず
は(2)でいいのではないかと思います。拡張ライブラリだけロードされ
た時点では未定義の定数がdefined?やautoload?で真を返すようになり
ますが、実際に参照されればconst_missingになるので、許容範囲では
なかろうかと。
Index: eval.c
===================================================================
--- eval.c (revision 11898)
+++ eval.c (working copy)
@@ -6938,4 +6938,7 @@ static const char *const loadable_ext[]
};
+static int rb_feature_p _((const char *, const char *, int));
+static int search_required _((VALUE, VALUE *, VALUE *));
+
static int
rb_feature_p(feature, ext, rb)
@@ -6974,5 +6977,5 @@ rb_feature_p(feature, ext, rb)
if (loading_tbl) {
if (st_lookup(loading_tbl, (st_data_t)feature, 0)) {
- if (ext) return 'u';
+ if (!ext) return 'u';
return strcmp(ext, ".rb") ? 's' : 'r';
}
@@ -6994,19 +6997,22 @@ rb_feature_p(feature, ext, rb)
}
-static int search_required(VALUE, VALUE *, VALUE *);
-
int
rb_provided(feature)
const char *feature;
{
- VALUE fname, path;
+ const char *ext = strrchr(feature, '.');
- if (rb_feature_p(feature, 0, Qfalse))
- return Qtrue;
- if (search_required(rb_str_new2(feature), &fname, &path) != 0) {
- feature = RSTRING_PTR(fname);
- if (rb_feature_p(feature, strrchr(feature, '.'), Qfalse))
- return Qtrue;
+ if (ext && !strchr(ext, '/')) {
+ if (strcmp(".rb", ext) == 0) {
+ if (rb_feature_p(feature, ext, Qtrue)) return Qtrue;
+ return Qfalse;
+ }
+ else if (IS_SOEXT(ext) || IS_DLEXT(ext)) {
+ return Qfalse; /* may be overriden by .rb file */
+ }
}
+ if (rb_feature_p(feature, 0, Qfalse) == 'r')
+ return Qtrue;
+
return Qfalse;
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦