[#39604] [Bug #2323] "Z".."Z".succが空 — Hiro Asari <redmine@...>
Bug #2323: "Z".."Z".succが空
[#39606] [Feature:trunk] Dir instance methods for relative path — Nobuyoshi Nakada <nobu@...>
なかだです。
まつもと ゆきひろです
kosakiです
なかだです。
> なかだです。
まつもと ゆきひろです
成瀬です。
[#39642] [Bug #2338] 大きなFixnumを値にもつHash#hashが呼び出しごとに変わる — Yuki Sonoda <redmine@...>
Bug #2338: 大きなFixnumを値にもつHash#hashが呼び出しごとに変わる
44Oi44Or44Go55Sz44GX44G+44GZ44CCCgrku6XkuIvjga7nkrDlooPjgaflho3nj77jgZfjgabj
[#39660] [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Yusuke ENDOH <mame@...>
遠藤です。
In article <e0b1e5700911110537u2aacf835pc0aea13d89a92cef@mail.gmail.com>,
遠藤です。
At Wed, 11 Nov 2009 23:50:47 +0900,
遠藤です。
[#39669] メンテナ確認プロセス終了。メンテナ募集 — "Yugui (Yuki Sonoda)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
[#39685] [Feature #2366] private constant — Yusuke Endoh <redmine@...>
Feature #2366: private constant
まつもと ゆきひろです
チケット #2366 が更新されました。 (by Yusuke Endoh)
遠藤です。
=1B$B31$H$$$$$^$9!#=1B(B
遠藤です。
=1B$B31$H$$$$$^$9!#=1B(B
成瀬です。
=1B$B31$H$$$$$^$9!#=1B(B
遠藤です。
=1B$B31$H$$$$$^$9!#=1B(B
[#39696] [Feature #2372] read_all() with buffering — _ wanabe <redmine@...>
Feature #2372: read_all() with buffering
チケット #2372 が更新されました。 (by _ wanabe)
In article <4b0081d7e73af_8bc5c2a894735e@redmine.ruby-lang.org>,
[#39709] [Bug #2381] Math.gammaの挙動がx86_64とia64で異なる — Mitsuhiro TAKANO <redmine@...>
Bug #2381: Math.gammaの挙動がx86_64とia64で異なる
[#39714] Net::FTP で upload の resume ができない — Tomoyuki Chikanaga <chikanag@...>
近永と申します。
[#39720] hidden objectって? — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
以下のコミット以降、後述の現象が発生するそうです。
[#39743] String::gsubにおけるinvalid byte sequenceの検出について — TAKEGAWA Hiroshi <takegawa@...>
竹川と申します。
[#39755] RbConfig.rubybin — Tanaka Akira <akr@...>
ruby コマンドのパス名を返す RbConfig.rubybin というメソッド
須藤です。
In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,
> In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,
須藤です。
At Mon, 30 Nov 2009 19:28:39 +0900,
[#39760] [Bug #2395] 可視性の変更による alias されたメソッドの無効化 — _ wanabe <redmine@...>
Bug #2395: 可視性の変更による alias されたメソッドの無効化
[#39796] バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
[ruby-dev:39803] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる
けいじゅ@いしつかです.
In [ruby-dev:39800] the message: "[ruby-dev:39800] Re: バグ? ブロック
引数で to_ary が呼ばれる必要のない場面で呼ばれる", on Nov/27
22:32(JST) Yukihiro Matsumoto writes:
>まつもと ゆきひろです
>呼ばれる必要はないと思います。
ですよねぇ.
>|ただ, 簡単な再現スクリプトを作ってもこの現象は再現しませんので, 何か特
>|殊な条件が重なると発生するようです...
>うーん、直しようがない。
ですよねぇぇ...
>これなんですけど、確かに直接呼ぶんですけど、rescueしてるはず
>です。ので、例外が発生するのはやっぱりおかしいです。大規模な
>プログラムで小規模な再現パターンを抽出できないと言うのは同情
>しますが、それでもあまりに情報がないので対処しようがありませ
>ん。せめて「to_ary がないと怒られてしまう」ではなくて、どんな
>エラーメッセージなのか、できるだけ生のメッセージをいただくと
>かいうわけにはいきませんでしょうか。
あー. すいません. こんな感じです:
CONT#1 bjob.rb[214] BHere#rescue in create_nodes: undefined method `to_ary' for #<Fairy::Export:0x995d888>
-- peer side --
/home/keiju/public/a.research/fairy/git/fairy/lib/fairy/backend/bjob.rb:304:in `call'
/home/keiju/public/a.research/fairy/git/fairy/lib/fairy/backend/bjob.rb:304:in `each_export_by'
/
>あと、r25556だと、methog_missingが定義してあるかどうかで挙動
>が変わります(定義されてないと例外処理をショートカットする)。
>そのへんも織り込むと再現パターンを作れないでしょうか。
おー. すばらしいヒントです. to_aryがないと例外が出ているのは, リモート
オブジェクトで, method_missingを定義してありました.
おかげで再現スクリプトができました. ちょっと入り組んでいますが... 元の
コードからスケルトンを抜き出して作ったので...
これを実行すると問題の例外が発生します. (2)をコメントアウトし(1)に入れ
替えると例外が起らなくなります.
--
class A
def create_nodes
BO.assign_ntasks(self, "dummy1") do
|ntask, mapper, opts={}|
create_and_add_node(ntask, mapper, opts)
end
end
def create_and_add_node(ntask, mapper, opts={})
node = create_node(ntask) {|node|
}
end
def create_node(ntask, *params, &block)
block.call("dummy2")
end
def each_assigned_filter(&block)
# loop do
block.call D.new
# end
end
def each_export_by(njob, mapper, &block)
# block.call njob.export, :foo=>:bar #(1)
block.call njob.export #(2)
end
end
class B
def assign_ntasks(target_bjob, create_node_mutex, &block)
target_bjob.each_assigned_filter do |input_filter|
@c = C.new(input_filter, self, target_bjob)
assign_ntask(&block)
end
end
def assign_ntask(&block)
@c.assign_ntask(&block)
end
def assign_new_processor(bjob, &block)
create_processor("dummy9", bjob, &block)
end
def create_processor(node, bjob, &block)
yield "dummy10"
end
end
class C
def initialize(a, b, d)
@a = a
@b = b
@d = d
@cx = CX.new(self)
end
attr_reader :a, :b, :d
def assign_ntask(&block)
@cx.assign_ntask(&block)
end
end
class CX
def initialize(c)
@c = c
end
def assign_ntask(&block)
@c.d.each_export_by(@c.a, self) do |export, opts={}|
p export
p opts
@c.b.assign_new_processor("dummy5") do |processor|
block.call("dummy6", "dummy7", opts)
end
end
end
end
class D
def export
E.new
end
end
class E
def method_missing(method, *args, &block)
raise NoMethodError, method
end
end
BO = B.new
A.new.create_nodes
__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---