[#39606] [Feature:trunk] Dir instance methods for relative path — Nobuyoshi Nakada <nobu@...>

なかだです。

15 messages 2009/11/02
[#39607] Re: [Feature:trunk] Dir instance methods for relative path — Yukihiro Matsumoto <matz@...> 2009/11/02

まつもと ゆきひろです

[#39611] Re: [Feature:trunk] Dir instance methods for relative path — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/02

kosakiです

[#39660] [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Yusuke ENDOH <mame@...>

遠藤です。

14 messages 2009/11/11
[#39661] Re: [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Tanaka Akira <akr@...> 2009/11/11

In article <e0b1e5700911110537u2aacf835pc0aea13d89a92cef@mail.gmail.com>,

[#39685] [Feature #2366] private constant — Yusuke Endoh <redmine@...>

Feature #2366: private constant

23 messages 2009/11/14
[#39689] [Feature #2366] private constant — Yusuke Endoh <redmine@...> 2009/11/14

チケット #2366 が更新されました。 (by Yusuke Endoh)

[#40207] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/28

遠藤です。

[#40239] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40243] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/29

遠藤です。

[#40246] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40247] Re: [Feature #2366] private constant — "NARUSE, Yui" <naruse@...> 2010/01/29

成瀬です。

[#39720] hidden objectって? — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

15 messages 2009/11/18
[#39721] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/18

まつもと ゆきひろです

[#39726] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39727] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/19

まつもと ゆきひろです

[#39730] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39735] [Bug:trunk] r25230 causes SEGV arround Marshal — "NARUSE, Yui" <naruse@...> 2009/11/19

以下のコミット以降、後述の現象が発生するそうです。

[#39755] RbConfig.rubybin — Tanaka Akira <akr@...>

ruby コマンドのパス名を返す RbConfig.rubybin というメソッド

18 messages 2009/11/23
[#39756] Re: RbConfig.rubybin — Kouhei Sutou <kou@...> 2009/11/23

須藤です。

[#39814] Re: RbConfig.rubybin — Tanaka Akira <akr@...> 2009/11/30

In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39815] Re: RbConfig.rubybin — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/30

> In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39796] バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

14 messages 2009/11/27
[#39800] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/27

まつもと ゆきひろです

[#39803] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/27

けいじゅ@いしつかです.

[#39805] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[#39806] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/28

けいじゅ@いしつかです.

[#39807] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[ruby-dev:39761] Re: [Bug #2395] 可視性の変更による alias されたメソッドの無効化

From: Yusuke ENDOH <mame@...>
Date: 2009-11-24 03:55:08 UTC
List: ruby-dev #39761
遠藤です。

2009年11月24日11:29 _ wanabe <redmine@ruby-lang.org>:
> alias された元のメソッドを undef するとき、alias の前に可視性を変更する処理があると
> また元に戻しても alias 先のメソッドが呼べなくなります。
> rb_export_method() 中の rb_add_method() による現象のようです。


奇遇なことに、同じタイミングでほぼ同じ問題に悩んでいました。

  $ ruby19 -e 'public :eval; alias foo eval; foo "p 1"'
  -e:1:in `<main>': undefined method `foo' for main:Object (NoMethodError)


wanabe さんの提起している問題は 2 つに分けられると思います。

1) bar が foo の alias で、foo が ZSUPER だった際、foo ではなく bar を
   探してしまう (1.9 だけ、私が悩んでいたのはこっち)

  class C
    private
    def foo; "FOO"; end
    def bar; "BAR"; end
  end
  class D < C
    public :foo
    alias bar foo
  end
  p D.new.public_send(:bar)  #=> "BAR"
  # send だと最適化で正しく動いてしまう、public_send だと発症する

2) 同じクラスで alias を作ったらメソッド実体の実体がコピーされるのに
   継承先で alias を作ったら実体はコピーされない (1.8 も 1.9 も)

  class C
    private
    def foo; "foo"; end
    alias bar foo
    public :bar
  end
  class D < C
    public :foo
    alias baz foo
  end
  class C
    undef foo
  end
  p D.new.bar #=> "foo"
  p D.new.baz #=> NoMethodError


1) は 1.9 のバグだと思います。パッチをつけます (ただしまだテスト
してません) 。2) は仕様かどうか聞かないとわかりません。

Index: vm_eval.c
===================================================================
--- vm_eval.c	(revision 25898)
+++ vm_eval.c	(working copy)
@@ -105,6 +105,7 @@
       }
       case VM_METHOD_TYPE_ZSUPER: {
 	klass = RCLASS_SUPER(klass);
+	id = me->def->original_id;
 	if (!klass || !(me = rb_method_entry(klass, id))) {
 	    return method_missing(recv, id, argc, argv, NOEX_SUPER);
 	}
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 25898)
+++ vm_insnhelper.c	(working copy)
@@ -548,6 +548,7 @@
 	      }
 	      case VM_METHOD_TYPE_ZSUPER:{
 		VALUE klass = RCLASS_SUPER(me->klass);
+		id = me->def->original_id;
 		me = rb_method_entry(klass, id);

 		if (me != 0) {

-- 
Yusuke ENDOH <mame@tsg.ne.jp>

In This Thread