From: SASADA Koichi Date: 2008-01-29T17:31:32+09:00 Subject: [ruby-dev:33496] Re: /#{}/e.encoding  ささだです。 Yukihiro Matsumoto wrote: > |もともとこの連結に単なる文字列連結を使うのは、エスケープされ > |た中途半端な非 ASCII 文字が連結されて中途半端でないものにな > |るのを検出できないという問題があります。なので、 > |Regexp.preprocess というメソッドを新設して、そこで連結を行い、 > |エンコーディングの伝播も以前同様ににされるようにしてみました。 > > やはりコンパイル内部の事情をメソッドとして見せちゃうのには > ちょっと抵抗があります。たとえばto_strのようなランタイムなら > 気にならないのにな。 > > で、命令を増やすのは望ましくないということなんですが、ならば > toregexp命令がcntオペランドを受け付けるようにして、その中で > preprocess関数を呼ぶようにしてはどうでしょう?  個人的には、命令は可能ならメソッドに追い出したいなぁ、と思っていま す。そういう特別な機能は、freeze したオブジェクトの特異メソッドにし ておくとか。例えば、クラス定義、メソッド定義、alias, undef なんかは 全部外に追い出したいなぁと。 -- // SASADA Koichi at atdot dot net