From: WATANABE Hirofumi Date: 2004-07-28T13:31:52+09:00 Subject: [ruby-dev:23988] Re: [ruby-cvs] ruby: * eval.c (rb_eval): copy on write for argument local variable わたなべです。 "U.Nakamura" writes: > In message "[ruby-cvs] ruby: * eval.c (rb_eval): copy on write for argument local variable" > on Jul.27,2004 17:36:01, wrote: > | Log: > | * eval.c (rb_eval): copy on write for argument local variable > | assignment. > | > | * eval.c (assign): ditto. > | > | * eval.c (rb_call0): update ruby_frame->argv with the default > | value used for the optional arguments. > > えーと、たぶん「引数の上書きとsuper」の話による変更なのだと思 > いますが、mswin32ではこの変更の副作用でRubyの構築が失敗するよ > うになります。 現在tcltklibを作るとこで `find_library': wrong argument type String (expected Proc) (TypeError) となりますが、最小限の再現スクリプトだとこんな感じです。 % cat hoge.rb def foo(a, *b, &block) p b p block end foo(1, "foo", "bar") % ruby hoge.rb ["foo", "bar"] "bar" なぜblockが? -- わたなべひろふみ