/[pcre]/code/trunk/doc/pcrebuild.3
ViewVC logotype

Diff of /code/trunk/doc/pcrebuild.3

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 83 by nigel, Sat Feb 24 21:41:06 2007 UTC revision 91 by nigel, Sat Feb 24 21:41:34 2007 UTC
# Line 67  documentation. Line 67  documentation.
67  .SH "CODE VALUE OF NEWLINE"  .SH "CODE VALUE OF NEWLINE"
68  .rs  .rs
69  .sp  .sp
70  By default, PCRE treats character 10 (linefeed) as the newline character. This  By default, PCRE interprets character 10 (linefeed, LF) as indicating the end
71  is the normal newline character on Unix-like systems. You can compile PCRE to  of a line. This is the normal newline character on Unix-like systems. You can
72  use character 13 (carriage return) instead by adding  compile PCRE to use character 13 (carriage return, CR) instead, by adding
73  .sp  .sp
74    --enable-newline-is-cr    --enable-newline-is-cr
75  .sp  .sp
76  to the \fBconfigure\fP command. For completeness there is also a  to the \fBconfigure\fP command. There is also a --enable-newline-is-lf option,
77  --enable-newline-is-lf option, which explicitly specifies linefeed as the  which explicitly specifies linefeed as the newline character.
78  newline character.  .sp
79    Alternatively, you can specify that line endings are to be indicated by the two
80    character sequence CRLF. If you want this, add
81    .sp
82      --enable-newline-is-crlf
83    .sp
84    to the \fBconfigure\fP command. Whatever line ending convention is selected
85    when PCRE is built can be overridden when the library functions are called. At
86    build time it is conventional to use the standard for your operating system.
87  .  .
88  .SH "BUILDING SHARED AND STATIC LIBRARIES"  .SH "BUILDING SHARED AND STATIC LIBRARIES"
89  .rs  .rs
# Line 107  such as Line 115  such as
115  .sp  .sp
116  to the \fBconfigure\fP command.  to the \fBconfigure\fP command.
117  .  .
 .SH "LIMITING PCRE RESOURCE USAGE"  
 .rs  
 .sp  
 Internally, PCRE has a function called \fBmatch()\fP, which it calls repeatedly  
 (possibly recursively) when matching a pattern with the \fBpcre_exec()\fP  
 function. By controlling the maximum number of times this function may be  
 called during a single matching operation, a limit can be placed on the  
 resources used by a single call to \fBpcre_exec()\fP. The limit can be changed  
 at run time, as described in the  
 .\" HREF  
 \fBpcreapi\fP  
 .\"  
 documentation. The default is 10 million, but this can be changed by adding a  
 setting such as  
 .sp  
   --with-match-limit=500000  
 .sp  
 to the \fBconfigure\fP command. This setting has no effect on the  
 \fBpcre_dfa_exec()\fP matching function.  
 .  
118  .SH "HANDLING VERY LARGE PATTERNS"  .SH "HANDLING VERY LARGE PATTERNS"
119  .rs  .rs
120  .sp  .sp
# Line 155  When matching with the \fBpcre_exec()\fP Line 143  When matching with the \fBpcre_exec()\fP
143  by making recursive calls to an internal function called \fBmatch()\fP. In  by making recursive calls to an internal function called \fBmatch()\fP. In
144  environments where the size of the stack is limited, this can severely limit  environments where the size of the stack is limited, this can severely limit
145  PCRE's operation. (The Unix environment does not usually suffer from this  PCRE's operation. (The Unix environment does not usually suffer from this
146  problem.) An alternative approach that uses memory from the heap to remember  problem, but it may sometimes be necessary to increase the maximum stack size.
147  data, instead of using recursive function calls, has been implemented to work  There is a discussion in the
148  round this problem. If you want to build a version of PCRE that works this way,  .\" HREF
149  add  \fBpcrestack\fP
150    .\"
151    documentation.) An alternative approach to recursion that uses memory from the
152    heap to remember data, instead of using recursive function calls, has been
153    implemented to work round the problem of limited stack size. If you want to
154    build a version of PCRE that works this way, add
155  .sp  .sp
156    --disable-stack-for-recursion    --disable-stack-for-recursion
157  .sp  .sp
# Line 172  optimized functions that perform better Line 165  optimized functions that perform better
165  way. This option affects only the \fBpcre_exec()\fP function; it is not  way. This option affects only the \fBpcre_exec()\fP function; it is not
166  relevant for the the \fBpcre_dfa_exec()\fP function.  relevant for the the \fBpcre_dfa_exec()\fP function.
167  .  .
168    .SH "LIMITING PCRE RESOURCE USAGE"
169    .rs
170    .sp
171    Internally, PCRE has a function called \fBmatch()\fP, which it calls repeatedly
172    (sometimes recursively) when matching a pattern with the \fBpcre_exec()\fP
173    function. By controlling the maximum number of times this function may be
174    called during a single matching operation, a limit can be placed on the
175    resources used by a single call to \fBpcre_exec()\fP. The limit can be changed
176    at run time, as described in the
177    .\" HREF
178    \fBpcreapi\fP
179    .\"
180    documentation. The default is 10 million, but this can be changed by adding a
181    setting such as
182    .sp
183      --with-match-limit=500000
184    .sp
185    to the \fBconfigure\fP command. This setting has no effect on the
186    \fBpcre_dfa_exec()\fP matching function.
187    .P
188    In some environments it is desirable to limit the depth of recursive calls of
189    \fBmatch()\fP more strictly than the total number of calls, in order to
190    restrict the maximum amount of stack (or heap, if --disable-stack-for-recursion
191    is specified) that is used. A second limit controls this; it defaults to the
192    value that is set for --with-match-limit, which imposes no additional
193    constraints. However, you can set a lower limit by adding, for example,
194    .sp
195      --with-match-limit-recursion=10000
196    .sp
197    to the \fBconfigure\fP command. This value can also be overridden at run time.
198    .
199  .SH "USING EBCDIC CODE"  .SH "USING EBCDIC CODE"
200  .rs  .rs
201  .sp  .sp
# Line 184  compiled to run in an EBCDIC environment Line 208  compiled to run in an EBCDIC environment
208  to the \fBconfigure\fP command.  to the \fBconfigure\fP command.
209  .P  .P
210  .in 0  .in 0
211  Last updated: 15 August 2005  Last updated: 06 June 2006
212  .br  .br
213  Copyright (c) 1997-2005 University of Cambridge.  Copyright (c) 1997-2006 University of Cambridge.

Legend:
Removed from v.83  
changed lines
  Added in v.91

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12