[#44925] [Backport93 - Backport #5702][Open] backport r33935 — Yusuke Endoh <mame@...>

19 messages 2011/12/03

[#44940] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — Tanaka Akira <akr@...>

2011/12/6 <[email protected]>:

9 messages 2011/12/05
[#44941] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/05

2011年12月5日16:56 Tanaka Akira <[email protected]>:

[#44942] Re: [ruby-cvs:41134] naruse:r33956 (trunk): Comment out tests which fails with GDBM-DBM compat mode. — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/05

> おかしいな。gdbmは勝手にcreateフラグを立ててしまうので当該2つの

[#44985] [ruby-trunk - Bug #5757][Open] main threadがreadやselectで待っていると、^C でなかなか死なない — Yui NARUSE <naruse@...>

12 messages 2011/12/13

[#45021] [ruby-trunk - Bug #5786][Open] LoadError: cannot load such file -- openssl — Kazuhiro NISHIYAMA <redmine@...>

11 messages 2011/12/21

[#45057] [ruby-trunk - Feature #5820][Assigned] Merge Onigmo to Ruby 2.0 — Yui NARUSE <naruse@...>

21 messages 2011/12/28

[ruby-dev:45058] [ruby-trunk - Feature #5820] Merge Onigmo to Ruby 2.0

From: Yui NARUSE <naruse@...>
Date: 2011-12-28 17:44:03 UTC
List: ruby-dev #45058
Issue #5820 has been updated by Yui NARUSE.


= 現状の非互換について

Rubyへの取り込み方:
cd Onigmo
cp reg{comp,enc,error,exec,parse,syntax}.c reg{enc,int,parse}.h ~/ruby
cp oniguruma.h ~/ruby/include/ruby/

Onigmo: edf9df1cefc28472085a857116153529253ffab5 (tmp/ruby-2.0.x)
Ruby: r34150

>   1) Failure:
> test_parse_utf8(TestDateParse)
> [/home/naruse/ruby/test/date/test_date_parse.rb:651]:
> <"日本"> expected but was
> <nil>.

原因: 解析に正規表現を用いており、
[:alpha:] が ASCII にしかマッチしない問題を踏んでいる。

>   2) Failure:
> test_iso_8859_1(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
> >   3) Failure:
> > test_iso_8859_10(TestISO8859) [(eval):7]:
> > Expected /^SS$/i to match "\xDF".
>
>   4) Failure:
> test_iso_8859_13(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
>   5) Failure:
> test_iso_8859_14(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
>   6) Failure:
> test_iso_8859_15(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
>   7) Failure:
> test_iso_8859_16(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
>   8) Failure:
> test_iso_8859_2(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
>   9) Failure:
> test_iso_8859_3(TestISO8859) [(eval):5]:
> Expected /^SS$/i to match "\xDF".
>
>  10) Failure:
> test_iso_8859_4(TestISO8859) [(eval):7]:
> Expected /^SS$/i to match "\xDF".
>
>  11) Failure:
> test_iso_8859_9(TestISO8859) [(eval):5]:
> Expected /^SS$/i to match "\xDF".

未調査
大文字小文字テーブル対応が壊れた?

>  12) Failure:
> test_regexp_named_class(TestM17N) [/home/naruse/ruby/test/ruby/test_m17n.rb:543]:
> Expected /[[:space:]]/ to match " ".
>
>  13) Failure:
> test_posix_bracket(TestRegexp) [/home/naruse/ruby/test/ruby/test_regexp.rb:716]:
> Expected /\A[[:digit:]]+\z/ to match "0123456789".

POSIX 文字クラスが ASCII の範囲なため。

>  14) Failure:
> test_unicode(TestRegexp) [/home/naruse/ruby/test/ruby/test_regexp.rb:792]:
> Expected /^\u0149$/i to match "ʼn".

2)-11) と同じ問題?
----------------------------------------
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

In This Thread