/[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 75 by nigel, Sat Feb 24 21:40:37 2007 UTC revision 96 by nigel, Fri Mar 2 13:10:43 2007 UTC
# Line 1  Line 1 
1  .TH PCRE 3  .TH PCREBUILD 3
2  .SH NAME  .SH NAME
3  PCRE - Perl-compatible regular expressions  PCRE - Perl-compatible regular expressions
4  .SH "PCRE BUILD-TIME OPTIONS"  .SH "PCRE BUILD-TIME OPTIONS"
# Line 19  or --disable. These settings specify cha Line 19  or --disable. These settings specify cha
19  --enable and --disable always come in pairs, so the complementary option always  --enable and --disable always come in pairs, so the complementary option always
20  exists as well, but as it specifies the default, it is not described.  exists as well, but as it specifies the default, it is not described.
21  .  .
22    .SH "C++ SUPPORT"
23    .rs
24    .sp
25    By default, the \fBconfigure\fP script will search for a C++ compiler and C++
26    header files. If it finds them, it automatically builds the C++ wrapper library
27    for PCRE. You can disable this by adding
28    .sp
29      --disable-cpp
30    .sp
31    to the \fBconfigure\fP command.
32    .
33  .SH "UTF-8 SUPPORT"  .SH "UTF-8 SUPPORT"
34  .rs  .rs
35  .sp  .sp
# Line 56  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. There is a fourth option, specified by
85    .sp
86      --enable-newline-is-any
87    .sp
88    which causes PCRE to recognize any Unicode newline sequence.
89    .P
90    Whatever line ending convention is selected when PCRE is built can be
91    overridden when the library functions are called. At build time it is
92    conventional to use the standard for your operating system.
93  .  .
94  .SH "BUILDING SHARED AND STATIC LIBRARIES"  .SH "BUILDING SHARED AND STATIC LIBRARIES"
95  .rs  .rs
# Line 96  such as Line 121  such as
121  .sp  .sp
122  to the \fBconfigure\fP command.  to the \fBconfigure\fP command.
123  .  .
 .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. 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.  
 .  
124  .SH "HANDLING VERY LARGE PATTERNS"  .SH "HANDLING VERY LARGE PATTERNS"
125  .rs  .rs
126  .sp  .sp
# Line 138  of the compiled pattern, and this change Line 145  of the compiled pattern, and this change
145  .SH "AVOIDING EXCESSIVE STACK USAGE"  .SH "AVOIDING EXCESSIVE STACK USAGE"
146  .rs  .rs
147  .sp  .sp
148  PCRE implements backtracking while matching by making recursive calls to an  When matching with the \fBpcre_exec()\fP function, PCRE implements backtracking
149  internal function called \fBmatch()\fP. In environments where the size of the  by making recursive calls to an internal function called \fBmatch()\fP. In
150  stack is limited, this can severely limit PCRE's operation. (The Unix  environments where the size of the stack is limited, this can severely limit
151  environment does not usually suffer from this problem.) An alternative approach  PCRE's operation. (The Unix environment does not usually suffer from this
152  that uses memory from the heap to remember data, instead of using recursive  problem, but it may sometimes be necessary to increase the maximum stack size.
153  function calls, has been implemented to work round this problem. If you want to  There is a discussion in the
154    .\" HREF
155    \fBpcrestack\fP
156    .\"
157    documentation.) An alternative approach to recursion that uses memory from the
158    heap to remember data, instead of using recursive function calls, has been
159    implemented to work round the problem of limited stack size. If you want to
160  build a version of PCRE that works this way, add  build a version of PCRE that works this way, add
161  .sp  .sp
162    --disable-stack-for-recursion    --disable-stack-for-recursion
# Line 155  predictable: the block sizes requested a Line 168  predictable: the block sizes requested a
168  always freed in reverse order. A calling program might be able to implement  always freed in reverse order. A calling program might be able to implement
169  optimized functions that perform better than the standard \fBmalloc()\fP and  optimized functions that perform better than the standard \fBmalloc()\fP and
170  \fBfree()\fP functions. PCRE runs noticeably more slowly when built in this  \fBfree()\fP functions. PCRE runs noticeably more slowly when built in this
171  way.  way. This option affects only the \fBpcre_exec()\fP function; it is not
172    relevant for the the \fBpcre_dfa_exec()\fP function.
173    .
174    .SH "LIMITING PCRE RESOURCE USAGE"
175    .rs
176    .sp
177    Internally, PCRE has a function called \fBmatch()\fP, which it calls repeatedly
178    (sometimes recursively) when matching a pattern with the \fBpcre_exec()\fP
179    function. By controlling the maximum number of times this function may be
180    called during a single matching operation, a limit can be placed on the
181    resources used by a single call to \fBpcre_exec()\fP. The limit can be changed
182    at run time, as described in the
183    .\" HREF
184    \fBpcreapi\fP
185    .\"
186    documentation. The default is 10 million, but this can be changed by adding a
187    setting such as
188    .sp
189      --with-match-limit=500000
190    .sp
191    to the \fBconfigure\fP command. This setting has no effect on the
192    \fBpcre_dfa_exec()\fP matching function.
193    .P
194    In some environments it is desirable to limit the depth of recursive calls of
195    \fBmatch()\fP more strictly than the total number of calls, in order to
196    restrict the maximum amount of stack (or heap, if --disable-stack-for-recursion
197    is specified) that is used. A second limit controls this; it defaults to the
198    value that is set for --with-match-limit, which imposes no additional
199    constraints. However, you can set a lower limit by adding, for example,
200    .sp
201      --with-match-limit-recursion=10000
202    .sp
203    to the \fBconfigure\fP command. This value can also be overridden at run time.
204  .  .
205  .SH "USING EBCDIC CODE"  .SH "USING EBCDIC CODE"
206  .rs  .rs
# Line 167  compiled to run in an EBCDIC environment Line 212  compiled to run in an EBCDIC environment
212    --enable-ebcdic    --enable-ebcdic
213  .sp  .sp
214  to the \fBconfigure\fP command.  to the \fBconfigure\fP command.
215    .
216    .
217    .SH "SEE ALSO"
218    .rs
219    .sp
220    \fBpcreapi\fP(3), \fBpcre_config\fP(3).
221  .P  .P
222  .in 0  .in 0
223  Last updated: 09 September 2004  Last updated: 30 November 2006
224  .br  .br
225  Copyright (c) 1997-2004 University of Cambridge.  Copyright (c) 1997-2006 University of Cambridge.

Legend:
Removed from v.75  
changed lines
  Added in v.96

  ViewVC Help
Powered by ViewVC 1.1.5