From: Yukihiro Matsumoto Date: 2008-06-09T04:08:04+09:00 Subject: [ruby-dev:35003] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with まつもと ゆきひろです In message "Re: [ruby-dev:35001] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with" on Mon, 9 Jun 2008 02:34:59 +0900, SASADA Koichi writes: |Yukihiro Matsumoto wrote: |> エラーとして検出できればいいんじゃないでしょうか。多少不自然 |> ですけど。 | | 「エラーとして検出」というのはどういう意味でしょうか. | |1) curry の結果の call にブロックを渡したら「使わないよ」といって実 |行時「エラーとして検出」(例外)とする. |2) ifunc の仕様の問題なので,仕様を変更する.拡張ライブラリなどで利 |用しているような互換性の問題は,ビルド「エラーとして検出」できれば良い. |3) その他 | | 1 については,そもそもエラーを出すべき所までブロックの情報が届かな |い,という問題のため無理です. | | これを届かせるためには,ifunc まわりの仕様を変更する必要があります |が,届いたらそもそもこの問題は起こりません. うーん、そうなのですね。 | 2 については,今は rb_iterate に渡す関数ポインタの引数が ANYARGS |なので無理です. とすると、現在はちゃんと説明できない仕様なわけですよね。自然 に期待されそうなことができず、警告もできないと言う。なら、 curryそのものを削った方がよいかもしれませんね。どうせ、誰も 本気では使わないんだし。