From: SASADA Koichi Date: 2012-11-12T19:23:34+09:00 Subject: [ruby-dev:46498] Re: Refinement仕様 (2012/11/12 18:32), Shugo Maeda wrote: >> > (c)については悩んだのですが、かなり深刻な問題だと思うので、 >> > >> > * module_eval(&b)の形式は禁止(例外) >> > * またはrefinement状態が異なる状態でのブロックの実行は禁止 >> > >> > のいずれかではどうだろうかと思っています。前者であれば松田テ >> > クニックが使えないことになるわけで、個人的には後者を望んでい >> > ますが、前者でも仕方がないと思っています。将来制約緩和の可能 >> > 性はあるので。 > 「refinement状態が異なる状態でのブロックの実行は禁止」というのは、 > ブロックを作った時と異なる状態ということではなく、ブロックを一度でも > 実行するとその時のrefinementの状態を覚えておいて、違う状態で実行した > 時にエラーにするという理解で合っているでしょうか? > > インラインキャッシュの問題については、ささださんの案で解決されそう > ですが、それでも「refinement状態が異なる状態でのブロックの実行は禁止」 > した方がよいと思われますか? > 仕様的にちょっと微妙な気がするのですが。  全面的に,実装含めて制限なくうまくやる or  全面的に禁止 がいいんじゃないかと思います. # refinement の状態が異なる状態,のチェックがしんどい気がします. -- // SASADA Koichi at atdot dot net