[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: Stack overflow in regexp matcher



>>>>> In [emacs-w3m : No.10288] 野宮賢 / NOMIYA Masaruさん wrote:
> emacs-w3m は cvs の最先端で,Emacs 23.0.60.1 の上での話です.
> 以前(Emacs 23.0.50)から気になっていたのですが.
>    http://plusd.itmedia.co.jp/mobile/articles/0807/14/news031.html
> のシリーズを shimbun で読もうとしますと,

>  Stack overflow in regexp matcher

> というエラーで蹴られ,読むことが出来ません.

これは re-search-*, string-match, looking-at などを実行したとき
に、その引数として渡された正規表現が単に複雑に過ぎたり、曖昧合致
が入れ子になった要素 (極端な例: "\\(.*\\)*") を持っているために、
合致するテキストが非常に広範囲に及んでしまう場合に起きます。一般
的な解決策は、その正規表現の見直しと、必要なら正規表現を小分けに
して一回で行なおうとしていた正規表現サーチを多段階で行なうように
することです。

> 最新の記事は.shimbun 上では,
>    N07/14(月)10:21 [ ITmedia ニュース ] 第8回 「うちのサイトをiPhone 3G対応に
> です.
> この記事は,Emacs 上で M-x w3m として進めば,読むことが出来ます.

> ところが,不思議なことに,職場の Emacs 21.3 + emacs-w3m (CVS最先端)です
> と,shimbun で当該記事を問題なく読むことが出来ます.

> もしかしたら,Wanderlust 依存問題かな?,とも思うのですが....

きのうの朝作った Emacs HEAD 上で Gnus と Wanderlust を使って、そ
れぞれそのグループの最新の 20通の記事を読んでみましたが、問題あ
りませんでした。

> 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

この場合は wl-message.el を load することから始めてください。
-- 
山岡