ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:44892] method redefined warning depends GC?
@ 2011-11-20  0:44 Tanaka Akira
  2011-11-20  2:37 ` [ruby-dev:44893] " Nobuyoshi Nakada
  0 siblings, 1 reply; 2+ messages in thread
From: Tanaka Akira @ 2011-11-20  0:44 UTC (permalink / raw
  To: ruby developers list

test-all を -w をつけて動かしたときに、
  TC_Enumerable#test_to_set = (eval):2: warning: method redefined;
discarding old initialize
  /extdisk/chkbuild/chkbuild/tmp/build/ruby-trunk/20111119T160600Z/ruby/lib/set.rb:613:
warning: previous definition of initialize was here
という警告が出たり出なかったりすることで気がついたのですが、以下のプログラムの、
GC.start の有無で警告が出るか出ないか変わります。

以下のように、GC.start を呼ばない場合、警告が出ません。

% ./ruby -w -e '
class C
  def m() end
  alias m2 m
  remove_method :m2
  #GC.start
  def m() end
end
'

以下のように、GC.start を呼ぶ場合、警告が出ます。

% ./ruby -w -e '
class C
  def m() end
  alias m2 m
  remove_method :m2
  GC.start
  def m() end
end
'
-e:7: warning: method redefined; discarding old m
-e:3: warning: previous definition of m was here

これはそういうものなんでしょうか?

% ./ruby -v
ruby 2.0.0dev (2011-11-19 trunk 33791) [x86_64-linux]
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [ruby-dev:44893] Re: method redefined warning depends GC?
  2011-11-20  0:44 [ruby-dev:44892] method redefined warning depends GC? Tanaka Akira
@ 2011-11-20  2:37 ` Nobuyoshi Nakada
  0 siblings, 0 replies; 2+ messages in thread
From: Nobuyoshi Nakada @ 2011-11-20  2:37 UTC (permalink / raw
  To: ruby developers list

なかだです。

(11/11/20 9:44), Tanaka Akira wrote:
> test-all を -w をつけて動かしたときに、
>   TC_Enumerable#test_to_set = (eval):2: warning: method redefined;
> discarding old initialize
>   /extdisk/chkbuild/chkbuild/tmp/build/ruby-trunk/20111119T160600Z/ruby/lib/set.rb:613:
> warning: previous definition of initialize was here
> という警告が出たり出なかったりすることで気がついたのですが、以下のプログラムの、
> GC.start の有無で警告が出るか出ないか変わります。
(snip)
> これはそういうものなんでしょうか?

そういうものですね。
こういう方法もあります。

$ ./ruby -w -e '
class C
  def m() end
  old_m ||= instance_method :m
  GC.start
  def m() end
end
'

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-11-20  2:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-20  0:44 [ruby-dev:44892] method redefined warning depends GC? Tanaka Akira
2011-11-20  2:37 ` [ruby-dev:44893] " Nobuyoshi Nakada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).