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

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

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

revision 77 by nigel, Sat Feb 24 21:40:45 2007 UTC revision 93 by nigel, Sat Feb 24 21:41:42 2007 UTC
# Line 14  man page, in case the conversion went wr Line 14  man page, in case the conversion went wr
14  <br>  <br>
15  <ul>  <ul>
16  <li><a name="TOC1" href="#SEC1">PCRE BUILD-TIME OPTIONS</a>  <li><a name="TOC1" href="#SEC1">PCRE BUILD-TIME OPTIONS</a>
17  <li><a name="TOC2" href="#SEC2">UTF-8 SUPPORT</a>  <li><a name="TOC2" href="#SEC2">C++ SUPPORT</a>
18  <li><a name="TOC3" href="#SEC3">UNICODE CHARACTER PROPERTY SUPPORT</a>  <li><a name="TOC3" href="#SEC3">UTF-8 SUPPORT</a>
19  <li><a name="TOC4" href="#SEC4">CODE VALUE OF NEWLINE</a>  <li><a name="TOC4" href="#SEC4">UNICODE CHARACTER PROPERTY SUPPORT</a>
20  <li><a name="TOC5" href="#SEC5">BUILDING SHARED AND STATIC LIBRARIES</a>  <li><a name="TOC5" href="#SEC5">CODE VALUE OF NEWLINE</a>
21  <li><a name="TOC6" href="#SEC6">POSIX MALLOC USAGE</a>  <li><a name="TOC6" href="#SEC6">BUILDING SHARED AND STATIC LIBRARIES</a>
22  <li><a name="TOC7" href="#SEC7">LIMITING PCRE RESOURCE USAGE</a>  <li><a name="TOC7" href="#SEC7">POSIX MALLOC USAGE</a>
23  <li><a name="TOC8" href="#SEC8">HANDLING VERY LARGE PATTERNS</a>  <li><a name="TOC8" href="#SEC8">HANDLING VERY LARGE PATTERNS</a>
24  <li><a name="TOC9" href="#SEC9">AVOIDING EXCESSIVE STACK USAGE</a>  <li><a name="TOC9" href="#SEC9">AVOIDING EXCESSIVE STACK USAGE</a>
25  <li><a name="TOC10" href="#SEC10">USING EBCDIC CODE</a>  <li><a name="TOC10" href="#SEC10">LIMITING PCRE RESOURCE USAGE</a>
26    <li><a name="TOC11" href="#SEC11">USING EBCDIC CODE</a>
27    <li><a name="TOC12" href="#SEC12">SEE ALSO</a>
28  </ul>  </ul>
29  <br><a name="SEC1" href="#TOC1">PCRE BUILD-TIME OPTIONS</a><br>  <br><a name="SEC1" href="#TOC1">PCRE BUILD-TIME OPTIONS</a><br>
30  <P>  <P>
# Line 41  or --disable. These settings specify cha Line 43  or --disable. These settings specify cha
43  --enable and --disable always come in pairs, so the complementary option always  --enable and --disable always come in pairs, so the complementary option always
44  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.
45  </P>  </P>
46  <br><a name="SEC2" href="#TOC1">UTF-8 SUPPORT</a><br>  <br><a name="SEC2" href="#TOC1">C++ SUPPORT</a><br>
47    <P>
48    By default, the <b>configure</b> script will search for a C++ compiler and C++
49    header files. If it finds them, it automatically builds the C++ wrapper library
50    for PCRE. You can disable this by adding
51    <pre>
52      --disable-cpp
53    </pre>
54    to the <b>configure</b> command.
55    </P>
56    <br><a name="SEC3" href="#TOC1">UTF-8 SUPPORT</a><br>
57  <P>  <P>
58  To build PCRE with support for UTF-8 character strings, add  To build PCRE with support for UTF-8 character strings, add
59  <pre>  <pre>
# Line 52  strings as UTF-8. As well as compiling P Line 64  strings as UTF-8. As well as compiling P
64  have to set the PCRE_UTF8 option when you call the <b>pcre_compile()</b>  have to set the PCRE_UTF8 option when you call the <b>pcre_compile()</b>
65  function.  function.
66  </P>  </P>
67  <br><a name="SEC3" href="#TOC1">UNICODE CHARACTER PROPERTY SUPPORT</a><br>  <br><a name="SEC4" href="#TOC1">UNICODE CHARACTER PROPERTY SUPPORT</a><br>
68  <P>  <P>
69  UTF-8 support allows PCRE to process character values greater than 255 in the  UTF-8 support allows PCRE to process character values greater than 255 in the
70  strings that it handles. On its own, however, it does not provide any  strings that it handles. On its own, however, it does not provide any
# Line 72  such as <i>Lu</i> and <i>Nd</i> are supp Line 84  such as <i>Lu</i> and <i>Nd</i> are supp
84  <a href="pcrepattern.html"><b>pcrepattern</b></a>  <a href="pcrepattern.html"><b>pcrepattern</b></a>
85  documentation.  documentation.
86  </P>  </P>
87  <br><a name="SEC4" href="#TOC1">CODE VALUE OF NEWLINE</a><br>  <br><a name="SEC5" href="#TOC1">CODE VALUE OF NEWLINE</a><br>
88  <P>  <P>
89  By default, PCRE treats character 10 (linefeed) as the newline character. This  By default, PCRE interprets character 10 (linefeed, LF) as indicating the end
90  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
91  use character 13 (carriage return) instead by adding  compile PCRE to use character 13 (carriage return, CR) instead, by adding
92  <pre>  <pre>
93    --enable-newline-is-cr    --enable-newline-is-cr
94  </pre>  </pre>
95  to the <b>configure</b> command. For completeness there is also a  to the <b>configure</b> command. There is also a --enable-newline-is-lf option,
96  --enable-newline-is-lf option, which explicitly specifies linefeed as the  which explicitly specifies linefeed as the newline character.
97  newline character.  <br>
98    <br>
99    Alternatively, you can specify that line endings are to be indicated by the two
100    character sequence CRLF. If you want this, add
101    <pre>
102      --enable-newline-is-crlf
103    </pre>
104    to the <b>configure</b> command. There is a fourth option, specified by
105    <pre>
106      --enable-newline-is-any
107    </pre>
108    which causes PCRE to recognize any Unicode newline sequence.
109    </P>
110    <P>
111    Whatever line ending convention is selected when PCRE is built can be
112    overridden when the library functions are called. At build time it is
113    conventional to use the standard for your operating system.
114  </P>  </P>
115  <br><a name="SEC5" href="#TOC1">BUILDING SHARED AND STATIC LIBRARIES</a><br>  <br><a name="SEC6" href="#TOC1">BUILDING SHARED AND STATIC LIBRARIES</a><br>
116  <P>  <P>
117  The PCRE building process uses <b>libtool</b> to build both shared and static  The PCRE building process uses <b>libtool</b> to build both shared and static
118  Unix libraries by default. You can suppress one of these by adding one of  Unix libraries by default. You can suppress one of these by adding one of
# Line 94  Unix libraries by default. You can suppr Line 122  Unix libraries by default. You can suppr
122  </pre>  </pre>
123  to the <b>configure</b> command, as required.  to the <b>configure</b> command, as required.
124  </P>  </P>
125  <br><a name="SEC6" href="#TOC1">POSIX MALLOC USAGE</a><br>  <br><a name="SEC7" href="#TOC1">POSIX MALLOC USAGE</a><br>
126  <P>  <P>
127  When PCRE is called through the POSIX interface (see the  When PCRE is called through the POSIX interface (see the
128  <a href="pcreposix.html"><b>pcreposix</b></a>  <a href="pcreposix.html"><b>pcreposix</b></a>
# Line 110  such as Line 138  such as
138  </pre>  </pre>
139  to the <b>configure</b> command.  to the <b>configure</b> command.
140  </P>  </P>
 <br><a name="SEC7" href="#TOC1">LIMITING PCRE RESOURCE USAGE</a><br>  
 <P>  
 Internally, PCRE has a function called <b>match()</b>, which it calls repeatedly  
 (possibly recursively) when matching a pattern with the <b>pcre_exec()</b>  
 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 <b>pcre_exec()</b>. The limit can be changed  
 at run time, as described in the  
 <a href="pcreapi.html"><b>pcreapi</b></a>  
 documentation. The default is 10 million, but this can be changed by adding a  
 setting such as  
 <pre>  
   --with-match-limit=500000  
 </pre>  
 to the <b>configure</b> command. This setting has no effect on the  
 <b>pcre_dfa_exec()</b> matching function.  
 </P>  
141  <br><a name="SEC8" href="#TOC1">HANDLING VERY LARGE PATTERNS</a><br>  <br><a name="SEC8" href="#TOC1">HANDLING VERY LARGE PATTERNS</a><br>
142  <P>  <P>
143  Within a compiled pattern, offset values are used to point from one part to  Within a compiled pattern, offset values are used to point from one part to
# Line 154  When matching with the <b>pcre_exec()</b Line 165  When matching with the <b>pcre_exec()</b
165  by making recursive calls to an internal function called <b>match()</b>. In  by making recursive calls to an internal function called <b>match()</b>. In
166  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
167  PCRE's operation. (The Unix environment does not usually suffer from this  PCRE's operation. (The Unix environment does not usually suffer from this
168  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.
169  data, instead of using recursive function calls, has been implemented to work  There is a discussion in the
170  round this problem. If you want to build a version of PCRE that works this way,  <a href="pcrestack.html"><b>pcrestack</b></a>
171  add  documentation.) An alternative approach to recursion that uses memory from the
172    heap to remember data, instead of using recursive function calls, has been
173    implemented to work round the problem of limited stack size. If you want to
174    build a version of PCRE that works this way, add
175  <pre>  <pre>
176    --disable-stack-for-recursion    --disable-stack-for-recursion
177  </pre>  </pre>
# Line 171  optimized functions that perform better Line 185  optimized functions that perform better
185  way. This option affects only the <b>pcre_exec()</b> function; it is not  way. This option affects only the <b>pcre_exec()</b> function; it is not
186  relevant for the the <b>pcre_dfa_exec()</b> function.  relevant for the the <b>pcre_dfa_exec()</b> function.
187  </P>  </P>
188  <br><a name="SEC10" href="#TOC1">USING EBCDIC CODE</a><br>  <br><a name="SEC10" href="#TOC1">LIMITING PCRE RESOURCE USAGE</a><br>
189    <P>
190    Internally, PCRE has a function called <b>match()</b>, which it calls repeatedly
191    (sometimes recursively) when matching a pattern with the <b>pcre_exec()</b>
192    function. By controlling the maximum number of times this function may be
193    called during a single matching operation, a limit can be placed on the
194    resources used by a single call to <b>pcre_exec()</b>. The limit can be changed
195    at run time, as described in the
196    <a href="pcreapi.html"><b>pcreapi</b></a>
197    documentation. The default is 10 million, but this can be changed by adding a
198    setting such as
199    <pre>
200      --with-match-limit=500000
201    </pre>
202    to the <b>configure</b> command. This setting has no effect on the
203    <b>pcre_dfa_exec()</b> matching function.
204    </P>
205    <P>
206    In some environments it is desirable to limit the depth of recursive calls of
207    <b>match()</b> more strictly than the total number of calls, in order to
208    restrict the maximum amount of stack (or heap, if --disable-stack-for-recursion
209    is specified) that is used. A second limit controls this; it defaults to the
210    value that is set for --with-match-limit, which imposes no additional
211    constraints. However, you can set a lower limit by adding, for example,
212    <pre>
213      --with-match-limit-recursion=10000
214    </pre>
215    to the <b>configure</b> command. This value can also be overridden at run time.
216    </P>
217    <br><a name="SEC11" href="#TOC1">USING EBCDIC CODE</a><br>
218  <P>  <P>
219  PCRE assumes by default that it will run in an environment where the character  PCRE assumes by default that it will run in an environment where the character
220  code is ASCII (or Unicode, which is a superset of ASCII). PCRE can, however, be  code is ASCII (or Unicode, which is a superset of ASCII). PCRE can, however, be
# Line 181  compiled to run in an EBCDIC environment Line 224  compiled to run in an EBCDIC environment
224  </pre>  </pre>
225  to the <b>configure</b> command.  to the <b>configure</b> command.
226  </P>  </P>
227    <br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>
228    <P>
229    <b>pcreapi</b>(3), <b>pcre_config</b>(3).
230    </P>
231  <P>  <P>
232  Last updated: 28 February 2005  Last updated: 30 November 2006
233  <br>  <br>
234  Copyright &copy; 1997-2005 University of Cambridge.  Copyright &copy; 1997-2006 University of Cambridge.
235  <p>  <p>
236  Return to the <a href="index.html">PCRE index page</a>.  Return to the <a href="index.html">PCRE index page</a>.
237  </p>  </p>

Legend:
Removed from v.77  
changed lines
  Added in v.93

  ViewVC Help
Powered by ViewVC 1.1.5