From: Yui NARUSE Date: 2011-12-30T19:41:37+09:00 Subject: [ruby-dev:45065] [ruby-trunk - Feature #5820] Merge Onigmo to Ruby 2.0 Issue #5820 has been updated by Yui NARUSE. Motohiro KOSAKI wrote: > ただ将来的には libonigmo.so を動的にリンクするだけで済むような形態に移行できたらなあと > 思っており(実際にディストリからそういう要望をつい最近受けたばかりであるし)、 Ruby は Ruby 文法挙動オプション(コンパイルオプション)を指定した鬼車を用いているので、 普通のバイナリではたとえソースが一致していてもダメです。 この状況は鬼雲でも変わりませんから、そのような形態に移行するのは不可能なんじゃないかと思います。 > k-takataさんと > 今後どのような形態で協力していくのか一回お話ししにいった方がいいんじゃないかと思ったり思わなかったり。 そうですねぇ、現時点で鬼雲で追加された機能を Ruby 側でどうするかはちょっと悩んでいるところではあります。 > k-tanakaさんにRubyのコミッタになって貰うか、なるせさんがonigumoのコミッタになるとかがベストだと思いますが、 > そういう敷居をあげる話をうっちゃっておくとしても、なんらかのコミュニケーションパスが確立されていて欲しいなあ。 > とかとか k-tanaka さんがコミッタになって頂けるとわたしが楽ですね。 Ken Takata wrote: > POSIXブラケットは、Perlでは/a指定時にはASCII範囲に限定されるので、Onigmoではそれに合わせてあります。 > 個人的にはあまり変更したくないのですが、変更すべきでしょうか。 > 変更するとしたら、挙動オプションを1つ追加して、Ruby文法の場合はそれを有効にすることになると思いますが。 既定路線では 2.0 では非互換を導入しないという予定ですので、変更されない場合は 2.0 ではマージできない、 と言うことになると思います。 とはいえ、この辺はまつもとさんのさじ加減一つですが。 ところで、Ruby って /a のカスタマイズではなく、/u のカスタマイズではないでしょうか。 残りの大文字小文字の問題はこれが起因なんじゃないかと思います。 ので、仮に変更するとしたら、POSIXブラケットの変更ではなく、\d\w\sの変更でしょう。 ---------------------------------------- Feature #5820: Merge Onigmo to Ruby 2.0 https://bugs.ruby-lang.org/issues/5820 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 に置き換えようという話です。 https://github.com/k-takata/Onigmo/tree/tmp/ruby-2.0.x この取り込みによる影響は以下の通りです。 * 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} に対応。 * 最適化 * 暗黙のアンカーによる最適化を実装。 * http://redmine.ruby-lang.org/issues/3568 で無効化された最適化を再度有効化。 現状は POSIX 文字クラスに非互換があり、それが解決されればマージ可能と認識しています。 -- http://redmine.ruby-lang.org