[#23884] Ruby 1.8.2 preview1にむけて — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

34 messages 2004/07/13
[#23917] Re: Ruby 1.8.2 preview1にむけて — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/07/16

山本です。

[#23920] Re: Ruby 1.8.2 preview1にむけて — "NAKAMURA, Hiroshi" <nakahiro@...> 2004/07/16

なひです。

[#23922] ruby 1.8.2 preview1 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

27 messages 2004/07/16

[#23995] String#each -> String#each_char — Shugo Maeda <shugo@...>

前田です。

27 messages 2004/07/30
[#23996] Re: String#each -> String#each_char — matz@... (Yukihiro Matsumoto) 2004/07/30

まつもと ゆきひろです

[#23997] Re: String#each -> String#each_char — "U.Nakamura" <usa@...> 2004/07/30

こんにちは、なかむら(う)です。

[#23999] Re: String#each -> String#each_char — matz@... (Yukihiro Matsumoto) 2004/07/30

まつもと ゆきひろです

[#24000] Re: String#each -> String#each_char — "U.Nakamura" <usa@...> 2004/07/30

こんにちは、なかむら(う)です。

[#24005] Re: String#each -> String#each_char — Minero Aoki <aamine@...> 2004/07/31

青木です。

[#24012] Re: String#each -> String#each_char — Shugo Maeda <shugo@...> 2004/08/01

前田です。

[#24014] Re: String#each -> String#each_char — Minero Aoki <aamine@...> 2004/08/02

青木です。

[ruby-dev:23888] super in Method

From: nobu.nakada@...
Date: 2004-07-14 06:09:31 UTC
List: ruby-dev #23888
なかだです。

http://www.daifukuya.com/kagemai/ml/users/msg00253.html
http://pc5.2ch.net/test/read.cgi/tech/1087999575/231

で挙げられているエラーは、1.8と1.9でのMethodをdefine_methodした
ときの動作の違いによるもののようです。1.8のbase64.rbはHEADから
そのままバックポートされているため、引っかかっています。

define_methodされたメソッド内でのsuperは、1.8ではProcから定義さ
れたものはdefine_methodのときの名前ですが、Methodから定義された
ものは元々の名前になっています。一方1.9ではMethodの場合もProcと
同じようになっています。1.8のほうが統一されていないような気もす
るのですが、こちらの動作に戻すべきでしょうか。


Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.676
diff -u -2 -p -r1.676 eval.c
--- eval.c	9 Jul 2004 05:29:05 -0000	1.676
+++ eval.c	14 Jul 2004 06:00:39 -0000
@@ -9170,5 +9170,5 @@ rb_mod_define_method(argc, argv, mod)
 	    }
 	}
-	node = method->body;
+	node = NEW_FBODY(method->body, method->id, rklass);
     }
     else if (RDATA(body)->dmark == (RUBY_DATA_FUNC)blk_mark) {
Index: lib/base64.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/base64.rb,v
retrieving revision 1.5
diff -u -2 -p -r1.5 base64.rb
--- lib/base64.rb	12 Feb 2004 12:22:18 -0000	1.5
+++ lib/base64.rb	12 Jul 2004 01:06:11 -0000
@@ -120,12 +120,10 @@ module Base64
     include Base64
 
-    def _deprecated_base64(*args)
+    dep = proc do |*args, &block|
       m0, m1 = caller(0)
       m = m0[/\`(.*?)\'\z/, 1]
       warn("#{m1}: #{m} is deprecated; use Base64.#{m} instead")
-      super
+      super(*args, &block)
     end
-    dep = instance_method(:_deprecated_base64)
-    remove_method(:_deprecated_base64)
     for m in Base64.private_instance_methods(false)
       define_method(m, dep)


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next