[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Stack overflow in regexp matcher
- From: 野宮 賢 / NOMIYA Masaru <nomiya@xxxxxxxxxxxxxxxx>
- Date: Sat, 26 Jul 2008 21:47:31 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 10313
- References: <874p6s3bmj.wl%nomiya@xxxxxxxxxxxxxxxx> <b4my744kr8m.fsf@xxxxxxx>
野宮です.
ようやく時間が取れました.
>>>>> In the Message: [emacs-w3m ML: No.10290]
>>>>> with the date of Tue, 15 Jul 2008 07:58:33 +0900
>>>>> Katsumi Yamaoka <yamaoka@xxxxxxx> has written:
>> http://plusd.itmedia.co.jp/mobile/articles/0807/14/news031.html
>> のシリーズを shimbun で読もうとしますと,
>> Stack overflow in regexp matcher
>> というエラーで蹴られ,読むことが出来ません.
> これは re-search-*, string-match, looking-at などを実行したとき
> に、その引数として渡された正規表現が単に複雑に過ぎたり、曖昧合致
> が入れ子になった要素 (極端な例: "\\(.*\\)*") を持っているために、
> 合致するテキストが非常に広範囲に及んでしまう場合に起きます。一般
> 的な解決策は、その正規表現の見直しと、必要なら正規表現を小分けに
> して一回で行なおうとしていた正規表現サーチを多段階で行なうように
> することです。
う〜む,難しそうですね.
>> Backtrace を添付しますので,原因をお教え戴ければ幸甚です.
>> Debugger entered--Lisp error: (error "Stack overflow in regexp matcher")
>> signal(error ("Stack overflow in regexp matcher"))
>> byte-code("\301 \210\302^H@^HA\"\207" [err wl-message-buffer-cache-delete
>> wl-message-buffer-display([elmo-shimbun-folder [0 0 0 0 0 0 0] shimbun
> これだと、残念ながら原因が Wanderlust にあるのか shimbun にある
> のか、少なくともぼくにはわかりません。野宮さんには何度も何度も何
> 度も申し上げているのですが、byte-code(...) という要素がソースコー
> ドの表現に展開されるまで backtrace を採り直す努力をしていただけ
> ると、他の人が直接の原因を見つける助けになります。
> cf. http://www.jpl.org/elips/BUGS-ja.html
これは拝見していました.
ただ.
「これは byte-code(...) という関数が wl-message-buffer-display という
関数から呼ばれてエラーが起きているのですが、このように byte compile
された関数が何で、どこで定義されているかを知ることは事実上不可能です。」
と書かれてありますので,小生には無理だと思っていました.
> この場合は wl-message.el を load することから始めてください。
そうでしたか.
やってみましたところ,sb-itmedia.el の
(when (and (re-search-forward "\
\\(<h[0-9]>[^<]+</h[0-9]>[^<]*\\(\\(?:<[^>h][^>]*>[^<]*\\)*\\)\\)?<!--BODY-->"
nil t)
の正規表現が原因で,これを
(when (and (re-search-forward "\
<!--BODY-->"
nil t)
と書き換えましたら,問題が解消しました.
どうも,お騒がせし,申し訳ありません.m(_ _)m
---
野宮