Re: Infinite loop while generating gcc.1
- To: mathgroup at smc.vnet.net
- Subject: [mg26668] Re: Infinite loop while generating gcc.1
- From: "Joseph S. Myers" <jsm28 at cam.ac.uk>
- Date: Wed, 17 Jan 2001 00:47:21 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On 14 Jan 2001, Russ Allbery wrote: > Try changing this line to: > > 1 while s/B<((?:[^<>]|I<[^<>]*>)*)R<([^>]*)>/B<$1>${2}B</g; > > and see if that works any better? This just removes one * from inside the > parens in a way that should reduce the backtracking to linear rather than > exponential. This fixes the problem. OK to commit the following? 2001-01-15 Joseph S. Myers <jsm28 at cam.ac.uk> * texi2pod.pl: Fix regular expression for @r to avoid exponential recursion. From Russ Allbery <rra at stanford.edu>. Remove perl version check. 2001-01-15 Joseph S. Myers <jsm28 at cam.ac.uk> * configure.in, configure: Revert previous patch requiring perl 5.6.0. Index: texi2pod.pl =================================================================== RCS file: /cvs/gcc/gcc/contrib/texi2pod.pl,v retrieving revision 1.9 diff -u -r1.9 texi2pod.pl --- texi2pod.pl 2001/01/14 21:47:14 1.9 +++ texi2pod.pl 2001/01/15 07:49:52 @@ -4,8 +4,6 @@ # markup to Perl POD format. It's intended to be used to extract # something suitable for a manpage from a Texinfo document. -use v5.6.0; - $output = 0; $skipping = 0; %sects = (); @@ -262,7 +260,7 @@ s/\@(?:dmn|math)\{([^\}]*)\}/$1/g; # Handle @r inside bold. - 1 while s/B<((?:[^<>]*|I<[^<>*]*>)*)R<([^>]*)>/B<$1>${2}B</g; + 1 while s/B<((?:[^<>]|I<[^<>]*>)*)R<([^>]*)>/B<$1>${2}B</g; # Cross references are thrown away, as are @noindent and @refill. # (@noindent is impossible in .pod, and @refill is unnecessary.) Index: configure.in =================================================================== RCS file: /cvs/gcc/gcc/gcc/configure.in,v retrieving revision 1.477 retrieving revision 1.476 diff -u -r1.477 -r1.476 --- configure.in 2001/01/14 21:47:18 1.477 +++ configure.in 2001/01/13 20:36:56 1.476 @@ -471,9 +471,9 @@ BUILD_INFO=info AC_SUBST(BUILD_INFO) fi -# Are perl and pod2man recent enough to regenerate manpages? -AC_MSG_CHECKING([for recent perl and Pod::Man]) -if perl -e 'use v5.6.0; use 1.10 Pod::Man' >/dev/null 2>&1; then +# Is pod2man recent enough to regenerate manpages? +AC_MSG_CHECKING([for recent Pod::Man]) +if perl -e 'use 1.10 Pod::Man' >/dev/null 2>&1; then AC_MSG_RESULT(yes) GENERATED_MANPAGES=generated-manpages AC_SUBST(GENERATED_MANPAGES) else -- Joseph S. Myers jsm28 at cam.ac.uk