[#15357] Regexp literal and Regexp.new() — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
高橋征義です。むーん、問題のありかが違ったかも。
まつもと ゆきひろです
[#15369] ruby_init_loadpath() on Windows — Shugo Maeda <shugo@...>
前田です。
わたなべです。
[#15395] UnboundMethod.bind to derived class instance — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#15410] pp - pretty printing — Tanaka Akira <akr@...17n.org>
さて、time.rb が片付いたので、次は pp.rb のご意見募集です。
In article <hvod71ntocb.fsf@coulee.a02.aist.go.jp>,
In article <hvo1yhuqhvk.fsf@coulee.a02.aist.go.jp>,
高橋征義です。
In article <20011224230059I.maki@rubycolor.org>,
[#15411] inconsistency of STR_ASSOC — "K.Kosako" <kosako@...>
Version : 1.7 latest (2001-12-10)
[#15418] block for MatchData#select, Hash#select — nobu.nakada@...
なかだです。
[#15430] [BUG] Segmentation fault/ruby 1.7.2 (2001-12-10) — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#15435] Time#utcoff — Tanaka Akira <akr@...17n.org>
In article <hvosnahj702.fsf@coulee.a02.aist.go.jp>,
まつもと ゆきひろです
わたなべです。
In article <1008292110.329151.8468.nullmailer@ev.netlab.jp>,
まつもと ゆきひろです
In article <1008320813.231850.10341.nullmailer@ev.netlab.jp>,
In article <hvosnaeblzu.fsf@coulee.a02.aist.go.jp>,
[#15441] exported symbol — nobu.nakada@...
なかだです。
[#15456] irb/completion で Segmentation fault — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
On Sat, 15 Dec 2001 18:28:12 +0900
まつもと ゆきひろです
[#15464] gsub weirdness: gsub(/.*$/, "foo") — "Akinori MUSHA" <knu@...>
なんか gsub がおかしいような気がするんですが、これはこういう
青山です。
At Mon, 17 Dec 2001 05:22:53 +0900,
[#15466] listen for sockets in both IPv4 and IPv6 — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です.
[#15479] [BUG] thread with tempfile.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#15500] Re: define_method() does not properly set noex (PR#218) — nobu.nakada@...
なかだです。
[#15505] ERb — m_seki@...
In article <20011220114249J.seki@mr.nasu.toshiba.co.jp>,
In article <m3eljr5o9m.wl@edwin.mva.biglobe.ne.jp>,
高橋征義です。
In article <20020215085405G.seki@mr.nasu.toshiba.co.jp>,
ただただしです。
まつもと ゆきひろです
新井です。
西山和広です。
>>>>> In [ruby-dev : No.15909]
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
At Mon, 18 Feb 2002 12:50:31 +0900,
なかだです。
In message <200202201003.g1KA3As11455@sharui.nakada.kanuma.tochigi.jp>
新井です。
あづみです。
[#15507] fileutils (2) — Minero Aoki <aamine@...>
あおきです。
高橋征義です。
あおきです。
高橋征義です。結論は最後に。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
けいじゅ@日本ラショナルソフトウェアです.
[#15519] typo in tracer.rb (SCRIPT_LINES__) — sheepman <sheepman@...>
こんにちは。
なひです。
まつもと ゆきひろです
なひです。
[#15556] TCPSocket#open で Errno::EALREADY — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#15569] [REQ] File?chmod — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#15573] [patch] resolv.rb for win32 platform — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
In message <20011228143615.32D8.TIETEW-ML-RUBY-DEV@tietew.net>
こんにちは、なかむら(う)です。
Tietew です。
[#15603] filename within eval — nobu.nakada@...
なかだです。
[ruby-dev:15434] [EXP] private instance variable
なかだです。
ふと思い立って以前話にあがっていたprivate instance variable(で
いいんだっけ)を作ってみました。別クラスで定義したものにアクセス
する手段がないとか、module_evalの中で定義したメソッドでは外側の
名前になってしまうとか、かなり手抜きですが参考までに。
Index: parse.y
===================================================================
RCS file: /cvs/ruby/src/ruby/parse.y,v
retrieving revision 1.136
diff -u -2 -p -r1.136 parse.y
--- parse.y 2001/12/11 03:48:08 1.136
+++ parse.y 2001/12/13 15:24:29
@@ -96,4 +96,5 @@ static stack_type cmdarg_stack = 0;
#define CMDARG_P() (cmdarg_stack&1)
+static VALUE nest_scope;
static int class_nest = 0;
static int in_single = 0;
@@ -1413,4 +1414,5 @@ primary : literal
yyerror("class definition in method body");
class_nest++;
+ rb_ary_push(nest_scope, ID2SYM($2));
local_push();
$<num>$ = ruby_sourceline;
@@ -1422,4 +1424,5 @@ primary : literal
nd_set_line($$, $<num>4);
local_pop();
+ rb_ary_pop(nest_scope);
class_nest--;
}
@@ -1451,4 +1454,5 @@ primary : literal
yyerror("module definition in method body");
class_nest++;
+ rb_ary_push(nest_scope, ID2SYM($2));
local_push();
$<num>$ = ruby_sourceline;
@@ -1459,4 +1463,5 @@ primary : literal
$$ = NEW_MODULE($2, $4);
nd_set_line($$, $<num>3);
+ rb_ary_pop(nest_scope);
local_pop();
class_nest--;
@@ -2146,5 +2151,13 @@ yycompile(f, line)
ruby_sourcefile = f;
ruby_in_compile = 1;
+ if (!nest_scope) {
+ nest_scope = rb_ary_new();
+ rb_global_variable(&nest_scope);
+ }
+ else {
+ rb_ary_clear(nest_scope);
+ }
n = yyparse();
+ rb_ary_clear(nest_scope);
ruby_debug_lines = 0;
compile_for_eval = 0;
@@ -3804,6 +3817,21 @@ yylex()
if (tok()[1] == '@')
result = tCVAR;
- else
+ else {
+ if (tok()[1] == '_' && tok()[2]) {
+ VALUE scope = 0;
+ if (in_def && RARRAY(nest_scope)->len) {
+ scope = rb_ary_join(nest_scope, rb_str_new2("::"));
+ }
+ else if (compile_for_eval && RNODE(scope = ruby_frame->cbase)->nd_next) {
+ scope = rb_class_path(RNODE(scope)->nd_clss);
+ }
+ if (scope) {
+ char *s = RSTRING(scope)->ptr;
+ tokadd('@');
+ while (*s) tokadd(*s++);
+ }
+ }
result = tIVAR;
+ }
break;
@@ -5152,4 +5180,14 @@ rb_intern(name)
else {
id |= ID_INSTANCE;
+ if (name[1] == '_' && name[2]) {
+ while (*m && *m != '@') {
+ if (!is_identchar(*m)) {
+ id = ID_JUNK;
+ break;
+ }
+ m++;
+ }
+ goto id_new;
+ }
}
m++;
@@ -5195,4 +5233,5 @@ rb_intern(name)
}
if (*m) id = ID_JUNK;
+ id_new:
id |= ++last_id << ID_SCOPE_SHIFT;
id_regist:
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦