Bug #651
closedRegexp.new returns strange regexp object
Added by shyouhei (Shyouhei Urabe) about 17 years ago. Updated over 14 years ago.
Description
=begin
以下のような等式が成立しなくなったことに気づきました。
% ruby1.9 -e 'p( //u == Regexp.new("", nil, "u") )'
false
=end
Updated by matz (Yukihiro Matsumoto) about 17 years ago
Actions
#1
=begin
まつもと ゆきひろです
In message "Re: [ruby-dev:36753] [Bug #651] Regexp.new returns strange regexp object"
on Thu, 16 Oct 2008 03:31:52 +0900, Shyouhei Urabe redmine@ruby-lang.org writes:
|以下のような等式が成立しなくなったことに気づきました。
|
| % ruby1.9 -e 'p( //u == Regexp.new("", nil, "u") )'
| false
これは1.9から三番目の引数が無視されることになったせいです。
そのせいで、Regexp.newが生成したものはUTF-8固定ではなくなっ
てます。
が、不親切なのは確かなので、
- -v がなくても警告する
- メッセージをobsoleteからignoredに変更する
という対応にしようと思います。別の案としては、
- 'u'対応を復活させる
というものもありえますが。
=end
Updated by shyouhei (Shyouhei Urabe) about 17 years ago
Actions
#2
=begin
卜部です
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
In message "Re: [ruby-dev:36753] [Bug #651] Regexp.new returns strange regexp object"
on Thu, 16 Oct 2008 03:31:52 +0900, Shyouhei Urabe redmine@ruby-lang.org writes:|以下のような等式が成立しなくなったことに気づきました。
|
| % ruby1.9 -e 'p( //u == Regexp.new("", nil, "u") )'
| falseこれは1.9から三番目の引数が無視されることになったせいです。
そのせいで、Regexp.newが生成したものはUTF-8固定ではなくなっ
てます。が、不親切なのは確かなので、
- -v がなくても警告する
- メッセージをobsoleteからignoredに変更する
という対応にしようと思います。
妥当ではないでしょうか。
ruby -Kn -e 'p "\xF0\x80\x80\xBC".match(Regexp.new(".", nil, "u"))'
#<MatchData "\xF0">
あたりは事情を知らないとびっくりします。警告くらいは出てもいいと思います。
別の案としては、
- 'u'対応を復活させる
というものもありえますが。
uとかeはともかくnが欲しいことはあるんじゃないですかねえ。
=end
Updated by matz (Yukihiro Matsumoto) about 17 years ago
Actions
#3
=begin
まつもと ゆきひろです
In message "Re: [ruby-dev:36755] Re: [Bug #651] Regexp.new returns strange regexp object"
on Thu, 16 Oct 2008 14:18:48 +0900, Urabe Shyouhei shyouhei@ruby-lang.org writes:
|> が、不親切なのは確かなので、
|>
|> * -v がなくても警告する
|> * メッセージをobsoleteからignoredに変更する
|>
|> という対応にしようと思います。
|
|妥当ではないでしょうか。
とはいえ、「エンドユーザが警告を見ても困惑するだけ」という指
摘もあり、悩ましいところです。
|ruby -Kn -e 'p "\xF0\x80\x80\xBC".match(Regexp.new(".", nil, "u"))'
|#<MatchData "\xF0">
|
|あたりは事情を知らないとびっくりします。警告くらいは出てもいいと思います。
そうですねえ。
|> 別の案としては、
|>
|> * 'u'対応を復活させる
|>
|> というものもありえますが。
|>
|uとかeはともかくnが欲しいことはあるんじゃないですかねえ。
あ、nはあいかわらず有効です。無視されるようになったのはn以外
のeとかsとかuとかです。
=end
Updated by matz (Yukihiro Matsumoto) about 17 years ago
Actions
#4
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
Applied in changeset r19813.
=end
Updated by shyouhei (Shyouhei Urabe) about 17 years ago
Actions
#5
=begin
卜部です。
Yukihiro Matsumoto さんは書きました:
|> * 'u'対応を復活させる
|>
|> というものもありえますが。
|>
|uとかeはともかくnが欲しいことはあるんじゃないですかねえ。あ、nはあいかわらず有効です。無視されるようになったのはn以外
のeとかsとかuとかです。
そうですか?
% ruby1.9 -ve 'p( //n == Regexp.new("", nil, "n") )'
ruby 1.9.0 (2008-10-17 revision 17576) [x86_64-linux]
false
別の問題?¶
=end
Updated by shyouhei (Shyouhei Urabe) about 17 years ago
Actions
#6
- Status changed from Closed to Open
=begin
=end
Updated by matz (Yukihiro Matsumoto) about 17 years ago
Actions
#7
=begin
まつもと ゆきひろです
In message "Re: [ruby-dev:36761] Re: [Bug #651] Regexp.new returns strange regexp object"
on Fri, 17 Oct 2008 11:44:01 +0900, Urabe Shyouhei shyouhei@ruby-lang.org writes:
|そうですか?
|
|% ruby1.9 -ve 'p( //n == Regexp.new("", nil, "n") )'
|ruby 1.9.0 (2008-10-17 revision 17576) [x86_64-linux]
|false
|
|# 別の問題?
別の問題でした。//nがfixedでなかったという。
=end
Updated by shyouhei (Shyouhei Urabe) about 17 years ago
Actions
#8
- Status changed from Open to Closed
=begin
=end