[#18151] Regexp.last_match — WATANABE Tetsuya <llama@...01.gate01.com>
渡辺哲也です。
[#18186] [req] Marshal — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
In article <1031498274.659939.18144.nullmailer@picachu.netlab.jp>,
まつもと ゆきひろです
In article <1032189662.175916.22019.nullmailer@picachu.netlab.jp>,
[#18208] Re: [ruby-list:35875] Unsecure world writeabledir の警告 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
わたなべです。
[#18229] Re: [ruby-cvs] rough/ext/stringio: * ruby-stringio.spec: 0.0.7, added changelog. — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
わたなべです。
わたなべです。
こんにちは、なかむら(う)です。
わたなべです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
わたなべです。
[#18246] Re: missing/vsnprintf.c: printf("%+f", -0.0) — WATANABE Hirofumi <eban@...>
わたなべです。
At Tue, 10 Sep 2002 12:21:10 +0900,
[#18262] mswin32: EINVAL on Process.kill — Minero Aoki <aamine@...>
あおきです。
[#18274] $0 handling on DOSISH — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
なかだです。
岩月と申します。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
こんにちは、なかむら(う)です。
[#18285] rubicon on EWS4800 — Koji Arai <JCA02266@...>
新井です。
新井です。
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
新井です。
なかだです。
In message <20020921.152641.11483667.JCA02266@nifty.ne.jp>
なかだです。
In article <200209211605.g8LG52p04564@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209211628.g8LGSxp04786@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209211739.g8LHdKp05495@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209220415.g8M4Fkp24392@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <200209260105.g8Q15PR08171@sharui.nakada.kanuma.tochigi.jp>,
なかだです。
In article <20020921.152641.11483667.JCA02266@nifty.ne.jp>,
なかだです。
In article <200209251737.g8PHbdR03024@sharui.nakada.kanuma.tochigi.jp>,
渡辺哲也です。
なかだです。
渡辺哲也です。
渡辺哲也です。
なかだです。
渡辺哲也です。
なかだです。
In article <200210020254.g922srH01700@sharui.nakada.kanuma.tochigi.jp>,
[#18314] class nest in module_eval — Minero Aoki <aamine@...>
あおきです。
[#18361] compile parse.y with -Wall — nobu.nakada@...
なかだです。
なかだです。
[#18371] Re: [ruby-cvs] ruby/lib/uri: * eval.c (ruby_run): should set toplevel visibility again here. — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#18374] Re: [ruby-cvs] ruby/ext/tcltklib: * eval.c (ruby_run): should set toplevel visibility again here. — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
なかだです。
わたなべです。
いがらしです。少し前の話ですが。
わたなべです。
なかだです。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#18391] pstore.rb can make a broken store — YANAGAWA Kazuhisa <kjana@...4lab.to>
# お願いされたから書いてみよう :-)
In article <20020926134339.C8DAE1EE12@milestones.dm4lab.to>,
[ruby-dev:18140] Re: autoload patch for ruby-1.7
なかだです。
At Mon, 2 Sep 2002 02:38:22 +0900,
Yoshinori K. Okuji <okuji@enbug.org> wrote:
> > 確かめたわけじゃありませんが、ファイル名とシンボルの配列をキー
> > にするよりも、st_tableを各モジュールに持たせたほうが速いような
> > 気がします。
訂正。モジュールとシンボルの配列でした。
> 実を言うと、中田さんのパッチにも私のパッチにも、というか、元の師星さん
> のパッチに、非互換性の問題が一つ、重大なバグが一つあります。非互換なの
> は、オリジナルでは、
>
> autoload :Foo, "foo.rb"
> autoload :Foo, "bar.rb"
> p Foo
>
> とした時、bar.rbがロードされるのに対し、パッチではfoo.rbがロードされて
> しまいます。これは簡単に直せると思います。
あ、確かに。このへんはあまり考えてませんでした。
> バグの方ですが、
>
> autoload :Foo, "foo.rb"
> autoload :Bar, "foo.rb"
> p Foo
> p Bar
>
> のように、一つのファイルに複数の定数が定義されているとき、それぞれに
> autoloadを呼ぶと、一つ目は成功しますが、それ以降は失敗することです。こ
> れはautoload_deleteが実際のロードのきっかけになった定数しかst_deleteし
> ないことが原因だと思います。
失敗はしないと思います。warningは出ますが。
$ ./i686-linux/miniruby -e 'autoload :Foo, "foo.rb"' -e 'autoload :Bar, "foo.rb"' -e 'p Foo' -e 'p Bar'
./foo.rb:2: warning: already initialized constant Bar
1
2
> それなり速くて素直なのは、逆方向のハッシュテーブルを別に持ち、あるファ
> イルからautoloadされるべき定数のリストを簡単に見られるようにしておく方
> 法です。この方法を使うと、データを重複して持たないといけなくなるので、
> あんまり良くないかもしれません。
>
> 少々遅くても良いなら、テーブルを全検索して、同じファイルからロードされ
> る定数を見付ける方法もあります。これだとautoloadされる定数が1000とかに
> なると(そんなことはあり得ないとは思いますが)、すごく遅いと思います。
>
> あまり良いアイディアが浮かばないので、代案をいただけるとありがたいです。
手抜きですが、autoload定数は上書きしてもwarningを出さないように
するとか。
--- variable.c~ Sun Sep 1 23:43:30 2002
+++ variable.c Mon Sep 2 04:58:47 2002
@@ -1056,5 +1056,5 @@ rb_mod_autoload(mod, sym, file)
Check_SafeStr(file);
- if (rb_const_defined_at(mod,id))
+ if ((tbl = RCLASS(mod)->iv_tbl) && st_lookup(tbl, id, &av) && av != Qundef)
return Qnil;
@@ -1416,6 +1416,8 @@ mod_av_set(klass, id, val, isconst)
if (st_lookup(RCLASS(klass)->iv_tbl, id, &value) ||
(klass == rb_cObject && st_lookup(rb_class_tbl, id, 0))) {
- if (value == Qundef) autoload_delete(klass, id);
- rb_warn("already initialized %s %s", dest, rb_id2name(id));
+ if (value == Qundef)
+ autoload_delete(klass, id);
+ else
+ rb_warn("already initialized %s %s", dest, rb_id2name(id));
}
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦