https://bugs.exim.org/show_bug.cgi?id=1569
Mehmet gelisin <mehmetgelisin@???> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mehmetgelisin@???
--- Comment #3 from Mehmet gelisin <mehmetgelisin@???> ---
Graycode is absolutely correct. This is a "well-known" effect of the way PCRE
remembers backtracking points -- and your pattern has a backtracking point for
every character in the subject. If you increase the size of the system stack,
you will find that it can handle longer strings. Alternatively, you can compile
PCRE to use the heap instead of the stack, but this makes it run more slowly.
http://www.compilatori.com/
In the forthcoming release of a new API for PCRE (called PCRE2) the amount of
stack per iteration has been reduced - at least, we thought we had reduced it
until I started testing your pattern, when I found it had actually increased.
This turned out to be because gcc was inlining a
http://www.logoarts.co.uk/
function, and stopping that has made the reduction work. For your pattern, on
my Linux system, around 18,000 characters is the subject limit; with
http://www.slipstone.co.uk/ PCRE2 it is about 22,700. So your report has been
very useful in debugging PCRE2. Thank you!
Because stack frame sizes vary so much with compiler and optimization level,
the pcretest -m -C feature that
http://www.acpirateradio.co.uk/ Graycode refers
to is no longer present in PCRE2. Actually, it was probably a "kludge/hack"
rather than a feature, and I am not convinced it ever really worked.
https://waytowhatsnext.com/
Graycode is absolutely correct. This is a "well-known" effect of the way PCRE
remembers backtracking points -- and your pattern has a backtracking point for
every character in the subject.
http://embermanchester.uk/ If you increase the
size of the system stack, you will find that it can handle longer strings.
Alternatively, you can compile PCRE to use the heap instead of the stack, but
this makes it run more slowly.
http://www.jopspeech.com/
In the forthcoming release of a new API for PCRE (called PCRE2) the amount of
stack per iteration has been reduced - at least, we thought we had reduced it
until I started testing your pattern, when I found it had actually increased.
This turned out to be because gcc was inlining a function, and stopping that
has made the reduction work. For your pattern, on
http://www.wearelondonmade.com/ my Linux system, around 18,000 characters is
the subject limit; with PCRE2 it is about 22,700. So your report has been very
useful in debugging PCRE2. Thank you!
Because stack frame sizes vary so much with compiler and optimization level,
the pcretest -m -C feature that Graycode refers to is no longer present in
PCRE2. Actually, it was probably a "kludge/hack" rather than a feature, and I
am not convinced it ever really worked.
Graycode is absolutely correct. This is a "well-known" effect of the way PCRE
remembers backtracking points -- and your pattern has a backtracking point for
every character in the subject. If you increase the size of the system stack,
you will find that it can handle longer strings. Alternatively, you can compile
PCRE to use the heap instead of the stack, but this makes it run more slowly.
In the forthcoming release of a new API for PCRE (called PCRE2) the amount of
stack per iteration has been reduced - at least, we thought we had reduced it
until I started testing your pattern, when I found it had actually increased.
This turned out to be because gcc was inlining a function, and stopping that
has made the reduction work. For your pattern, on my Linux system, around
18,000 characters is the subject limit; with PCRE2 it is about 22,700. So your
report has been very useful in debugging PCRE2. Thank you!
Because stack frame sizes vary so much with compiler and optimization level,
the pcretest -m -C feature that Graycode refers to is no longer present in
PCRE2. Actually, it was probably a "kludge/hack" rather than a feature, and I
am not convinced it ever really worked.
Graycode is absolutely correct. This is a "well-known" effect of the way PCRE
remembers backtracking points -- and your pattern has a backtracking point for
every character in the subject. If you increase the size of the system stack,
you will find that it can handle longer strings. Alternatively, you can compile
PCRE to use the heap instead of the stack, but this makes it run more slowly.
http://connstr.net/
In the forthcoming release of a new API for PCRE (called PCRE2) the amount of
stack per iteration has been reduced - at least, we thought we had reduced it
until I started testing your pattern,
http://joerg.li/ when I found it had
actually increased. This turned out to be because gcc was inlining a function,
and stopping that has made the reduction work. For your pattern,
https://www.webb-dev.co.uk/ on my Linux system, around 18,000 characters is the
subject limit; with PCRE2 it is about 22,700. So your report has been very
useful in debugging PCRE2. Thank you!
http://www.iu-bloomington.com/
Because stack frame sizes vary so much with compiler and optimization level,
the pcretest -m -C feature that Graycode refers to is no longer present in
PCRE2. Actually, it
http://www-look-4.com/ was probably a "kludge/hack" rather
than a feature, and I am not convinced it ever really worked.
--
You are receiving this mail because:
You are on the CC list for the bug.