Issue #5820 has been updated by Ken Takata.
Onigmo 5.13.0を公開しました。ONIG_SYNTAX_RUBYにて、/d で1.9仕様としています。
tmp/ruby-2.0.xブランチも更新し、r34236もマージしています。(masterブランチにはr34236をマージすべきか判断が付かなかったので保留しています。)
enc/shift_jis.cは少し手を入れています。enc/windows_31j.cを使っても、\p{Han}
の範囲が変更されていなかったようですので。
まず、JIS X 0213 については、現在の Ruby は黙殺しています。
そうであれば、Onigmoも当分そのままにしておこうと思います。
EUC-JP と eucJP-ms は JIS X 0212 を含むので、対応するのはありかもしれません。
こちらは頭の片隅にでも留めておきます。
Feature #5820: Merge Onigmo to Ruby 2.0
Author: Yui NARUSE
Status: Assigned
Priority: Normal
Assignee: Yui NARUSE
Category: M17N
Target version: 2.0.0
Ruby 1.9 では正規表現エンジンや M17N の基盤として Oniguruma を用いています。
これを 2.0 では Oniguruma の改造版である、k-takata さんの Onigmo に置き換えようという話です。
この取り込みによる影響は以下の通りです。
- 100%互換 (既存のテストが全て無修正で通る)
- いくつかの新機能 [ruby-dev:44410]
- 正規表現
- \K, \R, \X, (?(cond)yes|no), \g<0>, \g<+n>, (?au)
- Perl 5.10互換の名前参照(←Rubyには不要でしょう。)
- Shift_JIS, EUC-JPで、全角アルファベットなどの大文字小文字同一視検索に対応。
- Shift_JIS, EUC-JPで、\p{Han}, \p{Latin}, \p{Greek}, \p{Cyrillic}
に対応。 - 最適化
- 暗黙のアンカーによる最適化を実装。
- Bug #3568: /(?<=a).*b/ =~ "aab" doesn't match - Ruby master - Ruby Issue Tracking System で無効化された最適化を再度有効化。
現状は POSIX 文字クラスに非互換があり、それが解決されればマージ可能と認識しています。