[#28413] [mkmf] quoting directory names — "Nobuyoshi Nakada" <nobu@...>
なかだです。
2 messages
2006/03/01
[#28417] make install may make other ruby processs SEGV. — Tanaka Akira <akr@...17n.org>
たまに、動いている ruby プロセスがあるときに make install し
6 messages
2006/03/02
[#28418] Re: make install may make other ruby processs SEGV.
— Yukihiro Matsumoto <matz@...>
2006/03/02
まつもと ゆきひろです
[#28425] -MT付きでのコンパイルについて on Win32 VC7 — TOBY <toby@...>
TOBYと申します。
9 messages
2006/03/09
[#28446] named capture and /g, /G option — "K.Kosako" <sndgk393@...>
Ruby 1.9に、
30 messages
2006/03/21
[#28449] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/21
> Ruby 1.9に、
[#28452] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/21
まつもと ゆきひろです
[#28453] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/21
Yukihiro Matsumoto wrote:
[#28454] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/21
まつもと ゆきひろです
[#28457] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/22
Yukihiro Matsumoto wrote:
[#28459] Re: named capture and /g, /G option
— Tanaka Akira <akr@...17n.org>
2006/03/22
In article <44213D1A.2090100@ybb.ne.jp>,
[#28460] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/22
まつもと ゆきひろです
[#28484] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/29
K.Kosako wrote:
[#28485] Re: named capture and /g, /G option
— Tanaka Akira <akr@...17n.org>
2006/03/29
In article <442A83BE.1040200@ybb.ne.jp>,
[#28487] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/29
まつもと ゆきひろです
[#28471] aliasとcaller — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
7 messages
2006/03/27
[ruby-dev:28471] aliasとcaller
From:
"U.Nakamura" <usa@...>
Date:
2006-03-27 13:07:19 UTC
List:
ruby-dev #28471
こんにちは、なかむら(う)です。
元ネタは
http://www.yohasebe.com/diary/diary_search.php?id=142
なのですが、このスクリプトは、実は現在の1.8最新および1.9では
動作しません。
話を単純化して、
def __method__
caller.first.sub!(/^.*in `(?:.+?\#)?(.+)'$/, '\\1')
end
def foo
p __method__
end
alias bar foo
alias baz foo
foo
bar
baz
というスクリプトtest.rbがあったとき、
% ruby-1.6 -v test.rb
ruby 1.6.8 (2003-07-27) [i586-mswin32]
"foo"
"foo"
"foo"
% ruby-1.8.1 -v test.rb
ruby 1.8.1 (2003-12-25) [i386-mswin32]
"foo"
"bar"
"baz"
% ruby-1.8.4 -v test.rb
ruby 1.8.4 (2005-12-25) [i386-mswin32]
"foo"
"bar"
"baz"
% ruby-1.8 -v test.rb
ruby 1.8.4 (2006-03-23) [i386-mswin32]
"foo"
"foo"
"foo"
% ruby-1.9 -v test.rb
ruby 1.9.0 (2006-03-26) [i386-mswin32]
"foo"
"foo"
"foo"
というように、1.8系のリリース版のみ結果が異なります。
# 手元には1.8.0がなかったので試してませんが、1.8.0も他のリリ
# ース版と同様の結果になります。
alias時のcallerはどうなるべきか、という話を考え始めると、いろ
いろ難しいのですが、1.8リリース系列内での互換性を考えると、少
なくとも1.8系ではaliasされた名前が取れるべきであると思います。
また、どっちが便利か、という話になれば、aliasされた名前が取れ
た方が便利な気もします。
1.9でも、過去(2004年とか)はaliasされた名前が取れていたのです
が、1.8にせよ1.9にせよ、なぜaliasされた名前が取れるようになっ
たのか、なぜ今は取れなくされたのか、という意図はよくわかりま
せん。
というわけで、ふかーい理由がそこにあるならば諦めますが、特に
ないならご検討を願います。
おまけとして、1.8および1.9それぞれ用の修正(?)パッチをつけとき
ます。
Index: eval.c
===================================================================
RCS file: /home/cvs/ruby/eval.c,v
retrieving revision 1.616.2.166
diff -u -1 -p -r1.616.2.166 eval.c
--- eval.c 23 Mar 2006 01:52:02 -0000 1.616.2.166
+++ eval.c 27 Mar 2006 13:05:11 -0000
@@ -6191,3 +6191,3 @@ backtrace(lev)
ruby_sourcefile, ruby_sourceline,
- rb_id2name(frame->orig_func));
+ rb_id2name(frame->last_func));
}
@@ -6216,3 +6216,3 @@ backtrace(lev)
n->nd_file, nd_line(n),
- rb_id2name(frame->prev->orig_func));
+ rb_id2name(frame->prev->last_func));
}
Index: eval.c
===================================================================
RCS file: /home/cvs/ruby/eval.c,v
retrieving revision 1.890
diff -u -1 -p -r1.890 eval.c
--- eval.c 23 Feb 2006 04:24:39 -0000 1.890
+++ eval.c 27 Mar 2006 13:05:21 -0000
@@ -1110,3 +1110,3 @@ error_line(struct FRAME *frame, NODE *no
return rb_sprintf("%s:%d:in `%s'", file, line,
- rb_id2name(frame->this_func));
+ rb_id2name(frame->callee));
}
@@ -1123,3 +1123,3 @@ error_line(struct FRAME *frame, NODE *no
rb_class2name(oklass),
- rb_id2name(frame->this_func));
+ rb_id2name(frame->callee));
}
それでは。
--
U.Nakamura <usa@garbagecollect.jp>