[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

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

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

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

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30475] Re: unsupported: th_call0 in 1.9

From: "KUBO Takehiro" <kubo@...>
Date: 2007-03-03 14:39:45 UTC
List: ruby-dev #30475
久保です。

試験するの遅れてすみません。

On 2/26/07, Nobuyoshi Nakada <[email protected]> wrote:
> なかだです。
>
> At Wed, 21 Feb 2007 22:33:56 +0900,
> KUBO Takehiro wrote in [ruby-dev:30396]:
> > ruby 1.9 で以下の条件のとき、[BUG] unsupported: th_call0 となりました。
> >
> > 1. private なメソッドをサブクラスで public にする。
> > 2. 拡張ライブラリからサブクラスで public にしたメソッドを rb_funcall
> >    で呼び出す。
>
> これでどうでしょうか。

svn trunk にパッチを当ててやってみたところ、以下のようになりました。

  $ ruby mytest.rb
  mytest.rb:14:in `run': super: no superclass method `run' (NoMethodError)
          from mytest.rb:14:in `<main>'

mytest.c で定義してるのと同じクラスを ruby で書く(mytest.c の先頭の
コメントの書かれているコードを使う)と、エラーにならず、
  $ ruby mytest.rb
  OK
となります。

また、mytest.rb の
  class B < A
    public :run
  end
の部分を
  class B < A
    def run
      super
    end
  end
に変えても正常に動きました。(patchあり/なし両方とも)

親クラスで private なメソッドをサブクラスで
    public :メソッド名
でスコープを変更したときだけ、かつ、拡張ライブラリから
問題のメソッドを直接呼び出したときだけ起こる問題なのかな?

In This Thread