[#44925] [Backport93 - Backport #5702][Open] backport r33935 — Yusuke Endoh <mame@...>
19 messages
2011/12/03
[#44929] [Backport93 - Backport #5702] backport r33935
— Tomoyuki Chikanaga <nagachika00@...>
2011/12/05
[#44931] Re: [Backport93 - Backport #5702] backport r33935
— Yusuke Endoh <mame@...>
2011/12/05
GyRCMXNGIyRHJDkhIxsoQgoKGyRCJWwlUyVlITwkIiRqJCwkSCQmJDQkNiQkJF4kOSEjGyhCCgoK
[#44934] Re: [Backport93 - Backport #5702] backport r33935
— "NARUSE, Yui" <naruse@...>
2011/12/05
2011年12月5日12:39 Yusuke Endoh <mame@tsg.ne.jp>:
[#44940] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — Tanaka Akira <akr@...>
2011/12/6 <naruse@ruby-lang.org>:
9 messages
2011/12/05
[#44941] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode.
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/12/05
2011年12月5日16:56 Tanaka Akira <akr@fsij.org>:
[#44942] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode.
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/12/05
> おかしいな。gdbmは勝手にcreateフラグを立ててしまうので当該2つの
[#44943] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode.
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/12/05
> def test_s_open_no_create
[#44944] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode.
— Tanaka Akira <akr@...>
2011/12/05
2011年12月6日7:19 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#44946] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode.
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/12/06
>> DBM::VERSIONは仕様が腐っていて 1)本物のdbmとリンクした場合は
[#44947] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode.
— Tanaka Akira <akr@...>
2011/12/06
2011年12月6日12:51 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#44950] [ruby-trunk - Bug #5725][Assigned] Coverage doesn't honor file path encodings — Shyouhei Urabe <shyouhei@...>
6 messages
2011/12/08
[#44951] [ruby-trunk - Bug #5728][Open] SystemExit.new(bool, message) — Akira Tanaka <akr@...>
6 messages
2011/12/08
[#44961] [ruby-trunk - Bug #5731][Open] enum_for を使うと method_missing にブロックが渡されない — Masahiro Tomita <tommy@...>
4 messages
2011/12/09
[#44963] [ruby-trunk - Bug #5738][Open] if false; BEGIN {}; end が syntax error になる — Sho Hashimoto <sho-h@...>
5 messages
2011/12/10
[#44974] githubへの移行 — Shugo Maeda <shugo@...>
前田です。
10 messages
2011/12/12
[#44985] [ruby-trunk - Bug #5757][Open] main threadがreadやselectで待っていると、^C でなかなか死なない — Yui NARUSE <naruse@...>
12 messages
2011/12/13
[#45002] [ruby-trunk - Bug #5768][Assigned] TestRequire#test_race_exceptionで競合するケースがまだある — Yui NARUSE <naruse@...>
8 messages
2011/12/17
[#45021] [ruby-trunk - Bug #5786][Open] LoadError: cannot load such file -- openssl — Kazuhiro NISHIYAMA <redmine@...>
11 messages
2011/12/21
[#45022] [ruby-trunk - Bug #5786] LoadError: cannot load such file -- openssl
— Kazuhiro NISHIYAMA <redmine@...>
2011/12/21
[#45030] [ruby-trunk - Bug #5790][Open] net/http の EOFError と Keep-Alive — Yui NARUSE <naruse@...>
3 messages
2011/12/22
[#45034] Re: [ruby-dev:44974] githubへの移行 — Daehyub Kim <lateau@...>
44Oi44Or44Gn44GZ44CCCuOCiOOBneOCguOBruOBp+OBmeOBjOOAgeWwkeOBl+awl+OBq+OBquOC
9 messages
2011/12/22
[#45035] Re: githubへの移行
— "NARUSE, Yui" <naruse@...>
2011/12/22
2011年12月22日23:55 Daehyub Kim <lateau@gmail.com>:
[#45036] Re: githubへの移行
— Narihiro Nakamura <authornari@...>
2011/12/22
nariです。
[#45038] Re: githubへの移行
— KOSAKI Motohiro <kosaki.motohiro@...>
2011/12/22
> 成瀬さんがおっしゃってるログですが、以下にわりと古めのWikiページがある
[#45039] Re: githubへの移行
— Urabe Shyouhei <shyouhei@...>
2011/12/23
On 2011年12月23日 02:20, KOSAKI Motohiro wrote:
[ruby-dev:45007] [ruby-trunk - Bug #5731] enum_for を使うと method_missing にブロックが渡されない
From:
satoshi shiba <shiba@...>
Date:
2011-12-19 02:04:41 UTC
List:
ruby-dev #45007
Issue #5731 has been updated by satoshi shiba.
芝と申します。
パッチが正しいかどうかは分かりませんが、passing_block の設定が抜けてる関数は method_missing 以外にもあるので、一緒に対処してはどうでしょうか。
例えば、vm_call0 での passing_block の設定忘れは次のコードで確認できます。
# 問題となるコード(vm_call0 のほう)
# missing.rb
def respond_to_missing?(*args)
true
end
def method_missing(mid, *args)
yield
end
m = method(:call_missing)
m.call(){ puts "passing block ok" }
# 追加パッチ
Index: vm_eval.c
===================================================================
--- vm_eval.c (revision 34071)
+++ vm_eval.c (working copy)
@@ -118,6 +118,7 @@
RB_GC_GUARD(new_args);
rb_ary_unshift(new_args, ID2SYM(id));
+ th->passed_block = blockptr;
return rb_funcall2(recv, idMethodMissing,
argc+1, RARRAY_PTR(new_args));
}
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c (revision 34071)
+++ vm_insnhelper.c (working copy)
@@ -555,6 +555,7 @@
argv[0] = ID2SYM(me->def->original_id);
MEMCPY(argv+1, cfp->sp - num, VALUE, num);
cfp->sp += - num - 1;
+ th->passed_block = blockptr;
val = rb_funcall2(recv, rb_intern("method_missing"), num+1, argv);
break;
}
----------------------------------------
Bug #5731: enum_for を使うと method_missing にブロックが渡されない
https://bugs.ruby-lang.org/issues/5731
Author: Masahiro Tomita
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: -
次のスクリプトを 1.9.3 で実行すると enum_for の方は block が nil になります。
1.8.7 では両方とも block が渡されました。
---------------------------------------------
class A
def method_missing(name, *args, &block)
p block
end
end
a = A.new
a.hoge{|l| p l} # ブロックが渡される
a.enum_for(:hoge).each{|l| p l} # ブロックが渡されない
---------------------------------------------
% /usr/local/ruby187/bin/ruby -v a.rb
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
#<Proc:0xb76dbb60@a.rb:9>
#<Proc:0xb76db8e0@a.rb:10>
% ruby -v a.rb
ruby 1.9.3p0 (2011-10-30) [i686-linux]
#<Proc:0x8829080@a.rb:9>
nil
# 使い方が間違ってるだけだったらすいません
--
http://redmine.ruby-lang.org