Christian Meesters wrote:
> Hi,
> 
> PyDoc is working well, if invoked without flags on the modul in  
> question. But when I use it with '-w' to produce html-output, I get an  
> extremely long Traceback after a runtime of an hour or two. Here is a  
> short part from it:
> "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ 
> python2.3/sre.py", line 137, in search
>       return _compile(pattern, flags).search(string)
>   RuntimeError: maximum recursion depth exceeded
> 
> What's going wrong? When I ask Pydoc to write html documentation for  
> other modules there is no problem at all. It just works fine. And this  
> traceback tell me nothing about my module, only about PyDoc. For it  
> matters: I'm stuck with Python2.3 for compatibility reasons in this  
> project and the module I'd like to see documented uses scipy and it is  
> not really a small module anymore (about 1000 lines, including  
> docstrings and comments).

Some re searches in Python 2.3 can cause stack overflow. It looks like you may 
be running in to that problem. It is fixed in Python 2.4; could you use 2.4 to 
run pydoc?

Here is the relevant section of the Python 2.4 release notes:
The re module is also no longer recursive, thanks to a massive amount of work 
by Gustavo Niemeyer. In a recursive regular expression engine, certain patterns 
result in a large amount of C stack space being consumed, and it was possible 
to overflow the stack. For example, if you matched a 30000-byte string of "a" 
characters against the expression (a|b)+, one stack frame was consumed per 
character. Python 2.3 tried to check for stack overflow and raise a 
RuntimeError exception, but certain patterns could sidestep the checking and if 
you were unlucky Python could segfault. Python 2.4's regular expression engine 
can match this pattern without problems.

Kent

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to