指数関数的組合せ爆発の件
小迫さんから連絡を頂きました。ありがたい事に前向きに検討して下さっているようです。
が、個人的な要望なのに小迫さんに対応してもらうのもどうかなぁ。。。と思い立ったがタコさんの日という訳で。(何
(久々に)タコさんパッチの放流ぢゃ〜!差し支えないようでしたら取り込んで頂ければ幸いです。<(_ _)>
名称は適当につけたので、気に入らないようであれば変更して頂いて構いません。
diff -urN onig-4.4.0,orig/configure.in onig-4.4.0/configure.in --- onig-4.4.0,orig/configure.in 2006-08-22 11:20:24.000000000 +0900 +++ onig-4.4.0/configure.in 2006-08-29 01:58:18.586746168 +0900 @@ -19,6 +19,11 @@ [ STATISTICS=-DREG_DEBUG_STATISTICS ]) AC_SUBST(STATISTICS) +dnl check for ONIG_CHECK_BACKTRACK +AC_ARG_ENABLE(check_backtrack, + [ --enable-check-backtrack enable backtrack check], + AC_DEFINE(ONIG_CHECK_BACKTRACK,1,[Define to 1 if ceck backtrack.])) + dnl Checks for programs. AC_PROG_CC AM_PROG_LIBTOOL diff -urN onig-4.4.0,orig/regint.h onig-4.4.0/regint.h --- onig-4.4.0,orig/regint.h 2006-08-23 10:25:03.000000000 +0900 +++ onig-4.4.0/regint.h 2006-08-29 01:58:18.378777784 +0900 @@ -86,8 +86,10 @@ #define USE_VARIABLE_META_CHARS #define USE_WORD_BEGIN_END /* "\<": word-begin, "\>": word-end */ #define USE_POSIX_REGION_OPTION /* needed for POSIX API support */ -/* #define USE_COMBINATION_EXPLOSION_CHECK */ /* (X*)* */ -/* #define USE_MULTI_THREAD_SYSTEM */ +#ifdef ONIG_CHECK_BACKTRACK +#define USE_COMBINATION_EXPLOSION_CHECK /* (X*)* */ +#define USE_MULTI_THREAD_SYSTEM +#endif /* ONIG_CHECK_BACKTRACK */ #define THREAD_ATOMIC_START /* depend on thread system */ #define THREAD_ATOMIC_END /* depend on thread system */ #define THREAD_PASS /* depend on thread system */
このパッチを適用したら「autoconf」コマンドと「autoheader」コマンドを実行する必要があります。(密かに)タコさんガッツを見せていたのは内緒。
っていうか〜、「configure.in」「config.h.in」「Makefile.in」「Makefile.am」「aclocal.m4」とか訳ワカメ。腐った某スクリプトを見てるみたい。GNUの陰謀?(w
以下、質問です。
最初は「ONIG_CHECK_BACKTRACK(USE_COMBINATION_EXPLOSION_CHECK)」や「ONIG_THREAD(USE_MULTI_THREAD_SYSTEM)」というようにconfigureのフラグを別にしていたのですが、生成されたバイナリのサイズ(やチェックサム)に変化が見られなかったので一つに統一しました。
これは統合しても問題は無いでしょうか。> 小迫さん。