From: Akinori MUSHA Date: 2006-12-04T19:57:38+09:00 Subject: [ruby-dev:29986] Re: BUG: Incorrect handling of Ignorecase matching (regex.c of 1.8.5) At Mon, 4 Dec 2006 18:15:58 +0900, Urabe Shyouhei wrote: > きむらこういち wrote: > > 木村です。 > > > > 2ちゃんねるのRubyスレで報告されていたのですが、1.8以前のregex > > ルーチンの (?i) フラグの処理に問題があります。たとえば > > > > /(B|(?i)c)/ =~ 'B' > > > > でマッチに失敗します。 > > この件ですが1.8.5にも修正入れるべきでしょうか? > バグはバグなのですが修正すると後方互換性が失われるのでどうしたものか > と...こんな微妙な挙動に依存したスクリプトは早晩駆逐されるべきだとは思い > ますが、逆に仕様と言い切ってしまってもあまり困らない類のバグな気もしなく > もないため、若干悩んでいます。 「明らかなバグだから直した方がいい」 vs. 「これまで発覚しなかったくらいだから今さら直さなくてもいい」  どちらも一理あるので決めの問題だと思います。いずれにせよ、それを 理由付けするポリシーなりガイドラインなりを作るのが先々のためですね。  ruby_1_8 のポリシーでは後方互換性維持の原則を謳っているので、先の コミットは「守るべき互換性にはあたらない」と判断・解釈しました。 ただ、今後も、仕様のバグの修正には慎重な一方で実装のバグは積極的に 直していきたいと考えているので、そういう文言を追加しようと思います。  理由は、生きた安定版(実用版)系列としては、次期バージョンへの移行 までバグの回避コードを引きずることを強いるのは望ましくないと考える からです。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Different eyes see different things, Different hearts beat on different strings -- But there are times for you and me when all such things agree"