[#10793] 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.) — kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)
岡田です。
10 messages
2000/09/01
[#10815] Re: 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0on DEC Alpha.)
— nobu.nakada@...
2000/09/03
なかだです。
[#10816] Re: 今度こそ (patchof the ruby-1.4.6 for NT4.0&VC4.0on DEC Alpha.)
— kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)
2000/09/04
岡田です。
[#10820] Re: 今度こそ (patchof the ruby-1.4.6 for NT4.0&VC4.0on DEC Alpha.)
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/04
なかだ@ゴミです。
[#10866] Class Variable (sono 2) — Shin-ichiro HARA <sinara@...>
原です。
5 messages
2000/09/08
[#10882] setenv,unsetenv — Takaaki Tateishi <ttate@...>
立石です.
6 messages
2000/09/11
[#10894] Forward: [ruby-ext:01274] Re: 多重代入での to_a (Re: Ruby/Python doesn't work with Ruby 1.6) — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
3 messages
2000/09/11
[#10897] Re: [CVS 266] "matz: 1.6.0 final (hopufully)" — WATANABE Hirofumi <Hirofumi.Watanabe@...>
わたなべです.
6 messages
2000/09/12
[#10903] Class Variable と継承 — Kazuhiro NISHIYAMA <zn@...>
メソッドや定数は子クラスの方が常に優先されるみたいですが
8 messages
2000/09/12
[#10914] Re: Class Variable と継承
— Yasushi Shoji <yashi@...>
2000/09/13
At Wed, 13 Sep 2000 02:57:29 +0900,
[#10920] SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
17 messages
2000/09/14
[#11077] Re: SIGINT on windows
— matz@... (Yukihiro Matsumoto)
2000/09/27
まつもと ゆきひろです
[#11080] Re: SIGINT on windows
— Katsuyuki Komatsu <komatsu@...>
2000/09/27
小松です.
[#11081] Re: SIGINT on windows
— matz@... (Yukihiro Matsumoto)
2000/09/27
まつもと ゆきひろです
[#11089] Re: SIGINT on windows
— nobu.nakada@...
2000/09/27
なかだです。
[#11094] Re: SIGINT on windows
— nobu.nakada@...
2000/09/28
なかだです。
[#10921] proper tail recursion — Shugo Maeda <shugo@...>
前田です。
5 messages
2000/09/14
[#10943] Passing []/String as argument — Jun Adachi <adachi@...>
安達@沖データと申します。
2 messages
2000/09/18
[#10944] dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
19 messages
2000/09/18
[#10955] Re: dummy DLL on Windows
— WATANABE Hirofumi <eban@...>
2000/09/19
わたなべです.
[#10963] Re: dummy DLL on Windows
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/19
なかだです。
[#10964] Re: dummy DLL on Windows
— WATANABE Hirofumi <eban@...>
2000/09/19
わたなべです.
[#10967] Re: dummy DLL on Windows
— WATANABE Hirofumi <eban@...>
2000/09/19
わたなべです.
[#10970] Re: dummy DLL on Windows
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/19
なかだです。
[#10971] Re: dummy DLL on Windows
— WATANABE Hirofumi <eban@...>
2000/09/19
わたなべです.
[#10975] Re: dummy DLL on Windows
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/19
なかだです。
[#10976] Re: dummy DLL on Windows
— WATANABE Hirofumi <eban@...>
2000/09/19
わたなべです.
[#10977] Re: dummy DLL on Windows
— matz@... (Yukihiro Matsumoto)
2000/09/19
まつもと ゆきひろです
[#10979] Re: dummy DLL on Windows
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/20
なかだです。
[#10946] require "marshal" failure — Katsuyuki Komatsu <komatsu@...>
小松です.
9 messages
2000/09/18
[#10949] Re: require "marshal" failure
— matz@... (Yukihiro Matsumoto)
2000/09/18
まつもと ゆきひろです
[#10953] Re: require "marshal" failure
— WATANABE Hirofumi <eban@...>
2000/09/19
わたなべです.
[#10948] File::Constants — Yasushi Shoji <yashi@...>
Wed Oct 22 12:52:30 1997 Yukihiro Matsumoto <matz@netlab.co.jp>
5 messages
2000/09/18
[#10978] [PATCH] require in require — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
15 messages
2000/09/20
[#10981] Re: [PATCH] require in require
— matz@... (Yukihiro Matsumoto)
2000/09/20
まつもと ゆきひろです
[#10982] ruby1.6.0 on win32c
— Akira Muraki <a-muraki@...>
2000/09/20
村木@日立ITです。
[#10993] Re: ruby1.6.0 on win32c
— WATANABE Hirofumi <eban@...>
2000/09/21
わたなべです.
[#10985] httphead.rb proxy version problem — Katsuyuki Komatsu <komatsu@...>
小松です.
16 messages
2000/09/20
[#10989] Re: httphead.rb proxy version problem
— Minero Aoki <aamine@...>
2000/09/20
あおきです。
[#10992] Re: httphead.rb proxy version problem
— Katsuyuki Komatsu <komatsu@...>
2000/09/21
小松です。
[#10996] Re: httphead.rb proxy version problem
— matz@... (Yukihiro Matsumoto)
2000/09/21
まつもと ゆきひろです
[#10997] Re: httphead.rb proxy version problem
— matz@... (Yukihiro Matsumoto)
2000/09/21
まつもと ゆきひろです
[#11006] lstat — WATANABE Hirofumi <eban@...>
わたなべです.
14 messages
2000/09/21
[#11007] Re: lstat
— matz@... (Yukihiro Matsumoto)
2000/09/21
まつもと ゆきひろです
[#11008] Re: lstat
— matz@... (Yukihiro Matsumoto)
2000/09/21
まつもと ゆきひろです
[#11028] regex.c warning of alpha — Katsuyuki Komatsu <komatsu@...>
小松です。
7 messages
2000/09/22
[#11037] RUBYLIB_PRIFIX at emx/gcc — kenn@...
長沢です。
7 messages
2000/09/22
[#11052] ruby-1.6.1-20000921-i386-cygwin and Thread — Shin-ichiro HARA <sinara@...>
原です。
12 messages
2000/09/24
[#11056] Re: ruby-1.6.1-20000921-i386-cygwin and Thread
— WATANABE Hirofumi <eban@...>
2000/09/24
わたなべです.
[#11057] Re: ruby-1.6.1-20000921-i386-cygwin and Thread
— Shin-ichiro Hara <sinara@...>
2000/09/25
原です。
[#11058] Re: ruby-1.6.1-20000921-i386-cygwin and Thread
— ARIMA Yasuhiro <fit0298@...>
2000/09/25
有馬です。
[#11066] [PATCH] gcc extension in regex.c — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
6 messages
2000/09/26
[#11068] Re: [PATCH] gcc extension in regex.c
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/26
なかだです。
[#11074] 定数のネスト — Kazuhiro NISHIYAMA <zn@...>
http://www2.osk.3web.ne.jp/~kgt/Ruby.html#000925_2
8 messages
2000/09/26
[ruby-dev:10936] Re: Meta-Level API
From:
Hiroshi IGARASHI <igarashi@...>
Date:
2000-09-17 12:27:19 UTC
List:
ruby-dev #10936
いがらしです。
At Sun, 17 Sep 2000 19:48:11 +0900,
in [ruby-dev:10935] Re: Meta-Level API,
Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp> wrote:
>
> いがらしです。
>
> At Sun, 17 Sep 2000 01:25:32 +0900,
> in [ruby-dev:10933] Meta-Level API,
> Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp> wrote:
> >
> > Module#direct_included_modules
> > 直接includeしているModuleだけ返す版。
>
> 無理矢理ですがこんな感じで計算できます。
Cレベルでもうちょっとましに書いてみました。
Module#constants_at も入ってます。
--
五十嵐 宏 (Hiroshi IGARASHI)
Index: intern.h
===================================================================
RCS file: /home/cvs/ruby/intern.h,v
retrieving revision 1.27
diff -u -r1.27 intern.h
--- intern.h 2000/09/15 06:00:24 1.27
+++ intern.h 2000/09/17 12:25:18
@@ -84,6 +84,7 @@
VALUE rb_module_new _((void));
VALUE rb_define_module_id _((ID));
VALUE rb_mod_included_modules _((VALUE));
+VALUE rb_mod_included_modules_at _((VALUE));
VALUE rb_mod_ancestors _((VALUE));
VALUE rb_class_instance_methods _((int, VALUE*, VALUE));
VALUE rb_class_protected_instance_methods _((int, VALUE*, VALUE));
@@ -355,6 +356,7 @@
VALUE rb_mod_const_at _((VALUE, VALUE));
VALUE rb_mod_constants _((VALUE));
VALUE rb_mod_const_of _((VALUE, VALUE));
+VALUE rb_mod_constants_at _((VALUE));
VALUE rb_mod_remove_const _((VALUE, VALUE));
int rb_const_defined_at _((VALUE, ID));
int rb_autoload_defined _((ID));
Index: object.c
===================================================================
RCS file: /home/cvs/ruby/object.c,v
retrieving revision 1.28
diff -u -r1.28 object.c
--- object.c 2000/09/15 06:00:26 1.28
+++ object.c 2000/09/17 12:25:19
@@ -1155,6 +1155,7 @@
rb_define_method(rb_cModule, "clone", rb_mod_clone, 0);
rb_define_method(rb_cModule, "to_s", rb_mod_to_s, 0);
rb_define_method(rb_cModule, "included_modules", rb_mod_included_modules, 0);
+ rb_define_method(rb_cModule, "included_modules_at", rb_mod_included_modules_at, 0);
rb_define_method(rb_cModule, "name", rb_mod_name, 0);
rb_define_method(rb_cModule, "ancestors", rb_mod_ancestors, 0);
@@ -1171,6 +1172,7 @@
rb_define_method(rb_cModule, "private_instance_methods", rb_class_private_instance_methods, -1);
rb_define_method(rb_cModule, "constants", rb_mod_constants, 0);
+ rb_define_method(rb_cModule, "constants_at", rb_mod_constants_at, 0);
rb_define_method(rb_cModule, "const_get", rb_mod_const_get, 1);
rb_define_method(rb_cModule, "const_set", rb_mod_const_set, 2);
rb_define_method(rb_cModule, "const_defined?", rb_mod_const_defined, 1);
Index: class.c
===================================================================
RCS file: /home/cvs/ruby/class.c,v
retrieving revision 1.12
diff -u -r1.12 class.c
--- class.c 2000/07/27 09:49:14 1.12
+++ class.c 2000/09/17 12:25:19
@@ -265,6 +265,42 @@
}
VALUE
+rb_mod_included_modules_at(mod)
+ VALUE mod;
+{
+ VALUE ams = rb_mod_ancestors(mod);
+ int i;
+
+ switch (RARRAY(ams)->len) {
+ case 1:
+ return rb_ary_new();
+ case 2:
+ return rb_ary_new3(1, RARRAY(ams)->ptr[1]);
+ default:
+ {
+ VALUE ary = rb_obj_dup(ams);
+ for (i = 1; i < RARRAY(ams)->len; i++) {
+ VALUE m = RARRAY(ams)->ptr[i];
+ if (BUILTIN_TYPE(m) == T_MODULE) {
+ VALUE m2 = RCLASS(m)->super;
+ if (m2) {
+ rb_ary_delete(ary, RBASIC(m2)->klass);
+ }
+ } else {
+ ams = rb_mod_ancestors(m);
+ for (i = 0; i < RARRAY(ams)->len; i++) {
+ rb_ary_delete(ary, RARRAY(ams)->ptr[i]);
+ }
+ break;
+ }
+ }
+ rb_ary_delete(ary, mod);
+ return ary;
+ }
+ }
+}
+
+VALUE
rb_mod_ancestors(mod)
VALUE mod;
{
Index: variable.c
===================================================================
RCS file: /home/cvs/ruby/variable.c,v
retrieving revision 1.24
diff -u -r1.24 variable.c
--- variable.c 2000/09/15 06:00:28 1.24
+++ variable.c 2000/09/17 12:25:20
@@ -1182,6 +1182,13 @@
return rb_mod_const_of(mod, rb_ary_new());
}
+VALUE
+rb_mod_constants_at(mod)
+ VALUE mod;
+{
+ return rb_mod_const_at(mod, rb_ary_new());
+}
+
int
rb_const_defined_at(klass, id)
VALUE klass;