[Python-Dev] _sre changes

Michael Hudson mwh@python.net
Sun, 25 May 2003 17:27:22 +0100


Andrew MacIntyre <andymac@bullseye.apana.org.au> writes:

> On Sat, 24 May 2003, Gustavo Niemeyer wrote:
>
>> to backport some of the fixes we have introduced in the regular
>> expression engine in 2.3 to 2.2.3, or is it too late? We have a sf patch
>> open about that, but I'd like to port only the changes that don't
>> require major changes in the engine.
>
> These sre changes are giving me fits on FreeBSD.  The fix (recursion
> limit down to 7500 for gcc 3.x) applied for 2.3b1 now needs to be extended
> to gcc 2.95, and the limit for gcc 3.x lowered further - not a
> particularly satisfactory outcome.
>
> I have identified that the problem is not the compiler specifically, but
> an interaction with FreeBSD's pthreads implementation (libc_r) -
> ./configure --without-threads produces an interpreter which survives
> test_re with a recursion limit of 10000 regardless of compiler.

This is to be expected.  If you run a threads disabled Python with
ulimit -s you can recurse until you run out of VIRTUAL MEMORY!

When there are threads in the picture is significantly more
complex... (which is another way of stating that I don't understand
it, but you can understand that with multiple stacks you can't just
say "here's a really high address, work down from here"[1]).

Cheers,
M.

[1] or vice versa depending on architecture.

-- 
    -Dr. Olin Shivers,
     Ph.D., Cranberry-Melon School of Cucumber Science
                                           -- seen in comp.lang.scheme