/[pcre]/code/trunk/NEWS
ViewVC logotype

Contents of /code/trunk/NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1504 - (hide annotations) (download)
Fri Sep 26 09:21:46 2014 UTC (4 weeks, 1 day ago) by ph10
File size: 28108 byte(s)
Final tidies for 8.36

1 nigel 41 News about PCRE releases
2     ------------------------
3    
4 ph10 1504 Release 8.36 26-September-2014
5 ph10 1502 ------------------------------
6    
7     This is primarily a bug-fix release. However, in addition, the Unicode data
8     tables have been updated to Unicode 7.0.0.
9    
10    
11 ph10 1470 Release 8.35 04-April-2014
12 ph10 1459 --------------------------
13    
14     There have been performance improvements for classes containing non-ASCII
15     characters and the "auto-possessification" feature has been extended. Other
16     minor improvements have been implemented and bugs fixed. There is a new callout
17     feature to enable applications to do detailed stack checks at compile time, to
18 ph10 1465 avoid running out of stack for deeply nested parentheses. The JIT compiler has
19     been extended with experimental support for ARM-64, MIPS-64, and PPC-LE.
20 ph10 1459
21    
22 ph10 1412 Release 8.34 15-December-2013
23 ph10 1404 -----------------------------
24    
25     As well as fixing the inevitable bugs, performance has been improved by
26     refactoring and extending the amount of "auto-possessification" that PCRE does.
27     Other notable changes:
28    
29     . Implemented PCRE_INFO_MATCH_EMPTY, which yields 1 if the pattern can match
30     an empty string. If it can, pcretest shows this in its information output.
31    
32     . A back reference to a named subpattern when there is more than one of the
33     same name now checks them in the order in which they appear in the pattern.
34     The first one that is set is used for the reference. Previously only the
35     first one was inspected. This change makes PCRE more compatible with Perl.
36    
37     . Unicode character properties were updated from Unicode 6.3.0.
38    
39     . The character VT has been added to the set of characters that match \s and
40     are generally treated as white space, following this same change in Perl
41     5.18. There is now no difference between "Perl space" and "POSIX space".
42    
43     . Perl has changed its handling of \8 and \9. If there is no previously
44     encountered capturing group of those numbers, they are treated as the
45     literal characters 8 and 9 instead of a binary zero followed by the
46     literals. PCRE now does the same.
47    
48     . Following Perl, added \o{} to specify codepoints in octal, making it
49     possible to specify values greater than 0777 and also making them
50     unambiguous.
51    
52     . In UCP mode, \s was not matching two of the characters that Perl matches,
53     namely NEL (U+0085) and MONGOLIAN VOWEL SEPARATOR (U+180E), though they
54     were matched by \h.
55    
56     . Add JIT support for the 64 bit TileGX architecture.
57    
58     . Upgraded the handling of the POSIX classes [:graph:], [:print:], and
59     [:punct:] when PCRE_UCP is set so as to include the same characters as Perl
60     does in Unicode mode.
61    
62     . Perl no longer allows group names to start with digits, so I have made this
63     change also in PCRE.
64    
65 ph10 1412 . Added support for [[:<:]] and [[:>:]] as used in the BSD POSIX library to
66     mean "start of word" and "end of word", respectively, as a transition aid.
67 ph10 1404
68 ph10 1412
69 ph10 1335 Release 8.33 28-May-2013
70 ph10 1319 --------------------------
71    
72 ph10 1320 A number of bugs are fixed, and some performance improvements have been made.
73 ph10 1319 There are also some new features, of which these are the most important:
74    
75 ph10 1320 . The behaviour of the backtracking verbs has been rationalized and
76 ph10 1319 documented in more detail.
77    
78     . JIT now supports callouts and all of the backtracking verbs.
79    
80     . Unicode validation has been updated in the light of Unicode Corrigendum #9,
81 ph10 1320 which points out that "non characters" are not "characters that may not
82     appear in Unicode strings" but rather "characters that are reserved for
83 ph10 1319 internal use and have only local meaning".
84 ph10 1320
85     . (*LIMIT_MATCH=d) and (*LIMIT_RECURSION=d) have been added so that the
86     creator of a pattern can specify lower (but not higher) limits for the
87 ph10 1319 matching process.
88 ph10 1320
89 ph10 1319 . The PCRE_NEVER_UTF option is available to prevent pattern-writers from using
90 ph10 1320 the (*UTF) feature, as this could be a security issue.
91 ph10 1319
92    
93 ph10 1227 Release 8.32 30-November-2012
94 ph10 1217 -----------------------------
95 ph10 1003
96 ph10 1208 This release fixes a number of bugs, but also has some new features. These are
97     the highlights:
98    
99 ph10 1221 . There is now support for 32-bit character strings and UTF-32. Like the
100 ph10 1217 16-bit support, this is done by compiling a separate 32-bit library.
101 ph10 1208
102 ph10 1221 . \X now matches a Unicode extended grapheme cluster.
103 ph10 1208
104     . Case-independent matching of Unicode characters that have more than one
105 ph10 1221 "other case" now makes all three (or more) characters equivalent. This
106 ph10 1208 applies, for example, to Greek Sigma, which has two lowercase versions.
107    
108 ph10 1221 . Unicode character properties are updated to Unicode 6.2.0.
109    
110 ph10 1208 . The EBCDIC support, which had decayed, has had a spring clean.
111    
112 ph10 1221 . A number of JIT optimizations have been added, which give faster JIT
113 ph10 1208 execution speed. In addition, a new direct interface to JIT execution is
114 ph10 1221 available. This bypasses some of the sanity checks of pcre_exec() to give a
115 ph10 1208 noticeable speed-up.
116    
117 ph10 1003 . A number of issues in pcregrep have been fixed, making it more compatible
118 ph10 1221 with GNU grep. In particular, --exclude and --include (and variants) apply
119     to all files now, not just those obtained from scanning a directory
120 ph10 1003 recursively. In Windows environments, the default action for directories is
121     now "skip" instead of "read" (which provokes an error).
122 ph10 1221
123 ph10 1208 . If the --only-matching (-o) option in pcregrep is specified multiple
124 ph10 1221 times, each one causes appropriate output. For example, -o1 -o2 outputs the
125     substrings matched by the 1st and 2nd capturing parentheses. A separating
126     string can be specified by --om-separator (default empty).
127    
128     . When PCRE is built via Autotools using a version of gcc that has the
129 ph10 1208 "visibility" feature, it is used to hide internal library functions that are
130     not part of the public API.
131 ph10 1003
132 ph10 1221
133 ph10 984 Release 8.31 06-July-2012
134 ph10 975 -------------------------
135    
136     This is mainly a bug-fixing release, with a small number of developments:
137    
138     . The JIT compiler now supports partial matching and the (*MARK) and
139     (*COMMIT) verbs.
140    
141 ph10 988 . PCRE_INFO_MAXLOOKBEHIND can be used to find the longest lookbehind in a
142 ph10 975 pattern.
143    
144     . There should be a performance improvement when using the heap instead of the
145     stack for recursion.
146    
147     . pcregrep can now be linked with libedit as an alternative to libreadline.
148    
149     . pcregrep now has a --file-list option where the list of files to scan is
150     given as a file.
151    
152     . pcregrep now recognizes binary files and there are related options.
153    
154     . The Unicode tables have been updated to 6.1.0.
155    
156     As always, the full list of changes is in the ChangeLog file.
157    
158    
159 ph10 909 Release 8.30 04-February-2012
160     -----------------------------
161 ph10 840
162 ph10 842 Release 8.30 introduces a major new feature: support for 16-bit character
163 ph10 903 strings, compiled as a separate library. There are a few changes to the
164 ph10 857 8-bit library, in addition to some bug fixes.
165 ph10 840
166 ph10 857 . The pcre_info() function, which has been obsolete for over 10 years, has
167     been removed.
168 ph10 840
169 ph10 857 . When a compiled pattern was saved to a file and later reloaded on a host
170 ph10 903 with different endianness, PCRE used automatically to swap the bytes in some
171 ph10 857 of the data fields. With the advent of the 16-bit library, where more of this
172     swapping is needed, it is no longer done automatically. Instead, the bad
173     endianness is detected and a specific error is given. The user can then call
174     a new function called pcre_pattern_to_host_byte_order() (or an equivalent
175     16-bit function) to do the swap.
176 ph10 903
177 ph10 857 . In UTF-8 mode, the values 0xd800 to 0xdfff are not legal Unicode
178     code points and are now faulted. (They are the so-called "surrogates"
179     that are reserved for coding high values in UTF-16.)
180    
181    
182 ph10 836 Release 8.21 12-Dec-2011
183     ------------------------
184    
185     This is almost entirely a bug-fix release. The only new feature is the ability
186     to obtain the size of the memory used by the JIT compiler.
187    
188    
189 ph10 738 Release 8.20 21-Oct-2011
190     ------------------------
191 ph10 672
192 ph10 691 The main change in this release is the inclusion of Zoltan Herczeg's
193 ph10 672 just-in-time compiler support, which can be accessed by building PCRE with
194     --enable-jit. Large performance benefits can be had in many situations. 8.20
195     also fixes an unfortunate bug that was introduced in 8.13 as well as tidying up
196 ph10 738 a number of infelicities and differences from Perl.
197 ph10 672
198    
199 ph10 659 Release 8.13 16-Aug-2011
200 ph10 654 ------------------------
201    
202     This is mainly a bug-fix release. There has been a lot of internal refactoring.
203     The Unicode tables have been updated. The only new feature in the library is
204     the passing of *MARK information to callouts. Some additions have been made to
205     pcretest to make testing easier and more comprehensive. There is a new option
206     for pcregrep to adjust its internal buffer size.
207    
208    
209 ph10 588 Release 8.12 15-Jan-2011
210     ------------------------
211    
212 ph10 589 This release fixes some bugs in pcregrep, one of which caused the tests to fail
213 ph10 588 on 64-bit big-endian systems. There are no changes to the code of the library.
214    
215    
216 ph10 581 Release 8.11 10-Dec-2010
217 ph10 579 ------------------------
218    
219     A number of bugs in the library and in pcregrep have been fixed. As always, see
220     ChangeLog for details. The following are the non-bug-fix changes:
221    
222     . Added --match-limit and --recursion-limit to pcregrep.
223    
224     . Added an optional parentheses number to the -o and --only-matching options
225     of pcregrep.
226    
227     . Changed the way PCRE_PARTIAL_HARD affects the matching of $, \z, \Z, \b, and
228     \B.
229    
230     . Added PCRE_ERROR_SHORTUTF8 to make it possible to distinguish between a
231     bad UTF-8 sequence and one that is incomplete when using PCRE_PARTIAL_HARD.
232    
233     . Recognize (*NO_START_OPT) at the start of a pattern to set the PCRE_NO_
234     START_OPTIMIZE option, which is now allowed at compile time
235    
236    
237 ph10 548 Release 8.10 25-Jun-2010
238 ph10 535 ------------------------
239    
240 ph10 545 There are two major additions: support for (*MARK) and friends, and the option
241 ph10 535 PCRE_UCP, which changes the behaviour of \b, \d, \s, and \w (and their
242     opposites) so that they make use of Unicode properties. There are also a number
243     of lesser new features, and several bugs have been fixed. A new option,
244     --line-buffered, has been added to pcregrep, for use when it is connected to
245     pipes.
246    
247    
248 ph10 508 Release 8.02 19-Mar-2010
249 ph10 507 ------------------------
250    
251     Another bug-fix release.
252    
253    
254 ph10 489 Release 8.01 19-Jan-2010
255     ------------------------
256    
257     This is a bug-fix release. Several bugs in the code itself and some bugs and
258     infelicities in the build system have been fixed.
259    
260    
261 ph10 469 Release 8.00 19-Oct-09
262 ph10 461 ----------------------
263    
264     Bugs have been fixed in the library and in pcregrep. There are also some
265     enhancements. Restrictions on patterns used for partial matching have been
266     removed, extra information is given for partial matches, the partial matching
267     process has been improved, and an option to make a partial match override a
268     full match is available. The "study" process has been enhanced by finding a
269     lower bound matching length. Groups with duplicate numbers may now have
270     duplicated names without the use of PCRE_DUPNAMES. However, they may not have
271     different names. The documentation has been revised to reflect these changes.
272     The version number has been expanded to 3 digits as it is clear that the rate
273     of change is not slowing down.
274    
275    
276 ph10 415 Release 7.9 11-Apr-09
277 ph10 411 ---------------------
278 ph10 345
279 ph10 411 Mostly bugfixes and tidies with just a couple of minor functional additions.
280    
281    
282 ph10 374 Release 7.8 05-Sep-08
283 ph10 371 ---------------------
284    
285     More bug fixes, plus a performance improvement in Unicode character property
286     lookup.
287    
288    
289 ph10 347 Release 7.7 07-May-08
290 ph10 345 ---------------------
291    
292     This is once again mainly a bug-fix release, but there are a couple of new
293     features.
294    
295    
296 ph10 319 Release 7.6 28-Jan-08
297 ph10 309 ---------------------
298    
299     The main reason for having this release so soon after 7.5 is because it fixes a
300     potential buffer overflow problem in pcre_compile() when run in UTF-8 mode. In
301     addition, the CMake configuration files have been brought up to date.
302    
303    
304 ph10 298 Release 7.5 10-Jan-08
305 ph10 289 ---------------------
306 ph10 122
307 ph10 289 This is mainly a bug-fix release. However the ability to link pcregrep with
308     libz or libbz2 and the ability to link pcretest with libreadline have been
309     added. Also the --line-offsets and --file-offsets options were added to
310     pcregrep.
311    
312    
313 ph10 260 Release 7.4 21-Sep-07
314 ph10 242 ---------------------
315    
316 ph10 243 The only change of specification is the addition of options to control whether
317 ph10 242 \R matches any Unicode line ending (the default) or just CR, LF, and CRLF.
318 ph10 243 Otherwise, the changes are bug fixes and a refactoring to reduce the number of
319 ph10 261 relocations needed in a shared library. There have also been some documentation
320     updates, in particular, some more information about using CMake to build PCRE
321     has been added to the NON-UNIX-USE file.
322 ph10 242
323    
324 ph10 228 Release 7.3 28-Aug-07
325 ph10 212 ---------------------
326    
327     Most changes are bug fixes. Some that are not:
328    
329     1. There is some support for Perl 5.10's experimental "backtracking control
330     verbs" such as (*PRUNE).
331    
332     2. UTF-8 checking is now as per RFC 3629 instead of RFC 2279; this is more
333     restrictive in the strings it accepts.
334    
335     3. Checking for potential integer overflow has been made more dynamic, and as a
336     consequence there is no longer a hard limit on the size of a subpattern that
337     has a limited repeat count.
338 ph10 227
339     4. When CRLF is a valid line-ending sequence, pcre_exec() and pcre_dfa_exec()
340     no longer advance by two characters instead of one when an unanchored match
341     fails at CRLF if there are explicit CR or LF matches within the pattern.
342 ph10 226 This gets rid of some anomalous effects that previously occurred.
343 ph10 212
344 ph10 227 5. Some PCRE-specific settings for varying the newline options at the start of
345     a pattern have been added.
346 ph10 212
347 ph10 227
348 ph10 184 Release 7.2 19-Jun-07
349 ph10 157 ---------------------
350    
351 ph10 172 WARNING: saved patterns that were compiled by earlier versions of PCRE must be
352 ph10 181 recompiled for use with 7.2 (necessitated by the addition of \K, \h, \H, \v,
353     and \V).
354 ph10 168
355 ph10 159 Correction to the notes for 7.1: the note about shared libraries for Windows is
356     wrong. Previously, three libraries were built, but each could function
357     independently. For example, the pcreposix library also included all the
358     functions from the basic pcre library. The change is that the three libraries
359     are no longer independent. They are like the Unix libraries. To use the
360     pcreposix functions, for example, you need to link with both the pcreposix and
361 ph10 157 the basic pcre library.
362    
363 ph10 166 Some more features from Perl 5.10 have been added:
364 ph10 157
365 ph10 166 (?-n) and (?+n) relative references for recursion and subroutines.
366 ph10 172
367     (?(-n) and (?(+n) relative references as conditions.
368 ph10 182
369 ph10 181 \k{name} and \g{name} are synonyms for \k<name>.
370 ph10 172
371 ph10 168 \K to reset the start of the matched string; for example, (foo)\Kbar
372 ph10 175 matches bar preceded by foo, but only sets bar as the matched string.
373 ph10 182
374     (?| introduces a group where the capturing parentheses in each alternative
375     start from the same number; for example, (?|(abc)|(xyz)) sets capturing
376 ph10 175 parentheses number 1 in both cases.
377 ph10 166
378 ph10 182 \h, \H, \v, \V match horizontal and vertical whitespace, respectively.
379 ph10 166
380 ph10 182
381 ph10 155 Release 7.1 24-Apr-07
382 nigel 93 ---------------------
383    
384 ph10 155 There is only one new feature in this release: a linebreak setting of
385     PCRE_NEWLINE_ANYCRLF. It is a cut-down version of PCRE_NEWLINE_ANY, which
386     recognizes only CRLF, CR, and LF as linebreaks.
387 ph10 122
388 ph10 155 A few bugs are fixed (see ChangeLog for details), but the major change is a
389     complete re-implementation of the build system. This now has full Autotools
390     support and so is now "standard" in some sense. It should help with compiling
391     PCRE in a wide variety of environments.
392    
393 ph10 146 NOTE: when building shared libraries for Windows, three dlls are now built,
394     called libpcre, libpcreposix, and libpcrecpp. Previously, everything was
395     included in a single dll.
396    
397     Another important change is that the dftables auxiliary program is no longer
398 ph10 128 compiled and run at "make" time by default. Instead, a default set of character
399     tables (assuming ASCII coding) is used. If you want to use dftables to generate
400     the character tables as previously, add --enable-rebuild-chartables to the
401     "configure" command. You must do this if you are compiling PCRE to run on a
402     system that uses EBCDIC code.
403 ph10 122
404 ph10 128 There is a discussion about character tables in the README file. The default is
405     not to use dftables so that that there is no problem when cross-compiling.
406    
407    
408 ph10 122 Release 7.0 19-Dec-06
409     ---------------------
410    
411 nigel 93 This release has a new major number because there have been some internal
412     upheavals to facilitate the addition of new optimizations and other facilities,
413     and to make subsequent maintenance and extension easier. Compilation is likely
414     to be a bit slower, but there should be no major effect on runtime performance.
415     Previously compiled patterns are NOT upwards compatible with this release. If
416     you have saved compiled patterns from a previous release, you will have to
417     re-compile them. Important changes that are visible to users are:
418    
419     1. The Unicode property tables have been updated to Unicode 5.0.0, which adds
420     some more scripts.
421    
422     2. The option PCRE_NEWLINE_ANY causes PCRE to recognize any Unicode newline
423     sequence as a newline.
424    
425     3. The \R escape matches a single Unicode newline sequence as a single unit.
426    
427     4. New features that will appear in Perl 5.10 are now in PCRE. These include
428     alternative Perl syntax for named parentheses, and Perl syntax for
429     recursion.
430    
431     5. The C++ wrapper interface has been extended by the addition of a
432     QuoteMeta function and the ability to allow copy construction and
433     assignment.
434    
435     For a complete list of changes, see the ChangeLog file.
436    
437    
438 nigel 91 Release 6.7 04-Jul-06
439     ---------------------
440    
441     The main additions to this release are the ability to use the same name for
442     multiple sets of parentheses, and support for CRLF line endings in both the
443     library and pcregrep (and in pcretest for testing).
444    
445     Thanks to Ian Taylor, the stack usage for many kinds of pattern has been
446     significantly reduced for certain subject strings.
447    
448    
449 nigel 87 Release 6.5 01-Feb-06
450     ---------------------
451    
452     Important changes in this release:
453    
454     1. A number of new features have been added to pcregrep.
455    
456     2. The Unicode property tables have been updated to Unicode 4.1.0, and the
457     supported properties have been extended with script names such as "Arabic",
458     and the derived properties "Any" and "L&". This has necessitated a change to
459     the interal format of compiled patterns. Any saved compiled patterns that
460     use \p or \P must be recompiled.
461    
462     3. The specification of recursion in patterns has been changed so that all
463     recursive subpatterns are automatically treated as atomic groups. Thus, for
464     example, (?R) is treated as if it were (?>(?R)). This is necessary because
465     otherwise there are situations where recursion does not work.
466    
467     See the ChangeLog for a complete list of changes, which include a number of bug
468     fixes and tidies.
469    
470    
471 nigel 77 Release 6.0 07-Jun-05
472     ---------------------
473    
474     The release number has been increased to 6.0 because of the addition of several
475     major new pieces of functionality.
476    
477     A new function, pcre_dfa_exec(), which implements pattern matching using a DFA
478     algorithm, has been added. This has a number of advantages for certain cases,
479     though it does run more slowly, and lacks the ability to capture substrings. On
480     the other hand, it does find all matches, not just the first, and it works
481     better for partial matching. The pcrematching man page discusses the
482     differences.
483    
484     The pcretest program has been enhanced so that it can make use of the new
485     pcre_dfa_exec() matching function and the extra features it provides.
486    
487     The distribution now includes a C++ wrapper library. This is built
488     automatically if a C++ compiler is found. The pcrecpp man page discusses this
489     interface.
490    
491     The code itself has been re-organized into many more files, one for each
492     function, so it no longer requires everything to be linked in when static
493     linkage is used. As a consequence, some internal functions have had to have
494     their names exposed. These functions all have names starting with _pcre_. They
495     are undocumented, and are not intended for use by outside callers.
496    
497     The pcregrep program has been enhanced with new functionality such as
498     multiline-matching and options for output more matching context. See the
499     ChangeLog for a complete list of changes to the library and the utility
500     programs.
501    
502    
503 nigel 75 Release 5.0 13-Sep-04
504     ---------------------
505    
506     The licence under which PCRE is released has been changed to the more
507     conventional "BSD" licence.
508    
509     In the code, some bugs have been fixed, and there are also some major changes
510     in this release (which is why I've increased the number to 5.0). Some changes
511     are internal rearrangements, and some provide a number of new facilities. The
512     new features are:
513    
514     1. There's an "automatic callout" feature that inserts callouts before every
515     item in the regex, and there's a new callout field that gives the position
516     in the pattern - useful for debugging and tracing.
517    
518     2. The extra_data structure can now be used to pass in a set of character
519     tables at exec time. This is useful if compiled regex are saved and re-used
520     at a later time when the tables may not be at the same address. If the
521     default internal tables are used, the pointer saved with the compiled
522     pattern is now set to NULL, which means that you don't need to do anything
523     special unless you are using custom tables.
524    
525     3. It is possible, with some restrictions on the content of the regex, to
526     request "partial" matching. A special return code is given if all of the
527     subject string matched part of the regex. This could be useful for testing
528     an input field as it is being typed.
529    
530     4. There is now some optional support for Unicode character properties, which
531     means that the patterns items such as \p{Lu} and \X can now be used. Only
532     the general category properties are supported. If PCRE is compiled with this
533     support, an additional 90K data structure is include, which increases the
534     size of the library dramatically.
535    
536     5. There is support for saving compiled patterns and re-using them later.
537    
538     6. There is support for running regular expressions that were compiled on a
539     different host with the opposite endianness.
540    
541     7. The pcretest program has been extended to accommodate the new features.
542    
543     The main internal rearrangement is that sequences of literal characters are no
544     longer handled as strings. Instead, each character is handled on its own. This
545     makes some UTF-8 handling easier, and makes the support of partial matching
546     possible. Compiled patterns containing long literal strings will be larger as a
547     result of this change; I hope that performance will not be much affected.
548    
549    
550 nigel 73 Release 4.5 01-Dec-03
551     ---------------------
552    
553     Again mainly a bug-fix and tidying release, with only a couple of new features:
554    
555     1. It's possible now to compile PCRE so that it does not use recursive
556     function calls when matching. Instead it gets memory from the heap. This slows
557     things down, but may be necessary on systems with limited stacks.
558    
559     2. UTF-8 string checking has been tightened to reject overlong sequences and to
560     check that a starting offset points to the start of a character. Failure of the
561     latter returns a new error code: PCRE_ERROR_BADUTF8_OFFSET.
562    
563     3. PCRE can now be compiled for systems that use EBCDIC code.
564    
565    
566 nigel 71 Release 4.4 21-Aug-03
567     ---------------------
568    
569     This is mainly a bug-fix and tidying release. The only new feature is that PCRE
570     checks UTF-8 strings for validity by default. There is an option to suppress
571     this, just in case anybody wants that teeny extra bit of performance.
572    
573    
574     Releases 4.1 - 4.3
575     ------------------
576    
577     Sorry, I forgot about updating the NEWS file for these releases. Please take a
578     look at ChangeLog.
579    
580    
581 nigel 63 Release 4.0 17-Feb-03
582     ---------------------
583    
584     There have been a lot of changes for the 4.0 release, adding additional
585     functionality and mending bugs. Below is a list of the highlights of the new
586     functionality. For full details of these features, please consult the
587     documentation. For a complete list of changes, see the ChangeLog file.
588    
589     1. Support for Perl's \Q...\E escapes.
590    
591     2. "Possessive quantifiers" ?+, *+, ++, and {,}+ which come from Sun's Java
592     package. They provide some syntactic sugar for simple cases of "atomic
593     grouping".
594    
595     3. Support for the \G assertion. It is true when the current matching position
596     is at the start point of the match.
597    
598     4. A new feature that provides some of the functionality that Perl provides
599     with (?{...}). The facility is termed a "callout". The way it is done in PCRE
600     is for the caller to provide an optional function, by setting pcre_callout to
601     its entry point. To get the function called, the regex must include (?C) at
602     appropriate points.
603    
604     5. Support for recursive calls to individual subpatterns. This makes it really
605     easy to get totally confused.
606    
607     6. Support for named subpatterns. The Python syntax (?P<name>...) is used to
608     name a group.
609    
610     7. Several extensions to UTF-8 support; it is now fairly complete. There is an
611     option for pcregrep to make it operate in UTF-8 mode.
612    
613     8. The single man page has been split into a number of separate man pages.
614     These also give rise to individual HTML pages which are put in a separate
615     directory. There is an index.html page that lists them all. Some hyperlinking
616     between the pages has been installed.
617    
618    
619 nigel 53 Release 3.5 15-Aug-01
620     ---------------------
621    
622     1. The configuring system has been upgraded to use later versions of autoconf
623     and libtool. By default it builds both a shared and a static library if the OS
624     supports it. You can use --disable-shared or --disable-static on the configure
625     command if you want only one of them.
626    
627     2. The pcretest utility is now installed along with pcregrep because it is
628     useful for users (to test regexs) and by doing this, it automatically gets
629     relinked by libtool. The documentation has been turned into a man page, so
630     there are now .1, .txt, and .html versions in /doc.
631    
632     3. Upgrades to pcregrep:
633     (i) Added long-form option names like gnu grep.
634     (ii) Added --help to list all options with an explanatory phrase.
635     (iii) Added -r, --recursive to recurse into sub-directories.
636     (iv) Added -f, --file to read patterns from a file.
637    
638     4. Added --enable-newline-is-cr and --enable-newline-is-lf to the configure
639     script, to force use of CR or LF instead of \n in the source. On non-Unix
640     systems, the value can be set in config.h.
641    
642     5. The limit of 200 on non-capturing parentheses is a _nesting_ limit, not an
643     absolute limit. Changed the text of the error message to make this clear, and
644     likewise updated the man page.
645    
646     6. The limit of 99 on the number of capturing subpatterns has been removed.
647     The new limit is 65535, which I hope will not be a "real" limit.
648    
649    
650 nigel 49 Release 3.3 01-Aug-00
651     ---------------------
652    
653     There is some support for UTF-8 character strings. This is incomplete and
654     experimental. The documentation describes what is and what is not implemented.
655     Otherwise, this is just a bug-fixing release.
656    
657    
658 nigel 43 Release 3.0 01-Feb-00
659     ---------------------
660 nigel 41
661 nigel 43 1. A "configure" script is now used to configure PCRE for Unix systems. It
662     builds a Makefile, a config.h file, and the pcre-config script.
663    
664     2. PCRE is built as a shared library by default.
665    
666     3. There is support for POSIX classes such as [:alpha:].
667    
668     5. There is an experimental recursion feature.
669    
670 nigel 41 ----------------------------------------------------------------------------
671     IMPORTANT FOR THOSE UPGRADING FROM VERSIONS BEFORE 2.00
672    
673     Please note that there has been a change in the API such that a larger
674     ovector is required at matching time, to provide some additional workspace.
675     The new man page has details. This change was necessary in order to support
676     some of the new functionality in Perl 5.005.
677    
678     IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.00
679    
680     Another (I hope this is the last!) change has been made to the API for the
681     pcre_compile() function. An additional argument has been added to make it
682     possible to pass over a pointer to character tables built in the current
683 ph10 1325 locale by pcre_maketables(). To use the default tables, this new argument
684 nigel 41 should be passed as NULL.
685    
686     IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.05
687    
688     Yet another (and again I hope this really is the last) change has been made
689     to the API for the pcre_exec() function. An additional argument has been
690     added to make it possible to start the match other than at the start of the
691     subject string. This is important if there are lookbehinds. The new man
692     page has the details, but you just want to convert existing programs, all
693     you need to do is to stick in a new fifth argument to pcre_exec(), with a
694     value of zero. For example, change
695    
696     pcre_exec(pattern, extra, subject, length, options, ovec, ovecsize)
697     to
698     pcre_exec(pattern, extra, subject, length, 0, options, ovec, ovecsize)
699    
700     ****

Properties

Name Value
svn:eol-style native
svn:keywords "Author Date Id Revision Url"

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12