# \[ruby-trunk - Feature #5820\]\[Assigned\] Merge Onigmo to Ruby 2.0

**URL:** <https://www.ruby-forum.com/t/ruby-trunk-feature-5820-assigned-merge-onigmo-to-ruby-2-0/215257>\
**Category:** Development\
**Created:** [December 28, 2011, 6:43pm UTC](https://www.ruby-forum.com/t/ruby-trunk-feature-5820-assigned-merge-onigmo-to-ruby-2-0/215257 "2011-12-28T18:43:00Z")\
**Posts on this page:** 1\
**Page:** 2

<div class="post-metadata">

**Author:** ![Yui\_NARUSE](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/8edcca/32.png) [@Yui\_NARUSE](https://www.ruby-forum.com/u/Yui_NARUSE)\
**Post date:** [January 21, 2012, 3:52am UTC](https://www.ruby-forum.com/t/ruby-trunk-feature-5820-assigned-merge-onigmo-to-ruby-2-0/215257/21 "2012-01-21T03:52:57Z")

</div>

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

> **[Feature #5820: Merge Onigmo to Ruby 2.0 - Ruby - Ruby Issue Tracking System](https://bugs.ruby-lang.org/issues/5820)**
>
> Redmine

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 に置き換えようという話です。

> **[GitHub - k-takata/Onigmo at tmp/ruby-2.0.x](https://github.com/k-takata/Onigmo/tree/tmp/ruby-2.0.x)**
>
> 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}  
に対応。
  - 最適化
    - 暗黙のアンカーによる最適化を実装。
    - [Bug #3568: /(?\<=a).\*b/ =~ "aab" doesn't match - Ruby - Ruby Issue Tracking System](http://redmine.ruby-lang.org/issues/3568) で無効化された最適化を再度有効化。

現状は POSIX 文字クラスに非互換があり、それが解決されればマージ可能と認識しています。

[Previous page](https://www.ruby-forum.com/t/ruby-trunk-feature-5820-assigned-merge-onigmo-to-ruby-2-0/215257.md?page=1)
