|
|
| version 1.1, 2008/08/15 14:53:19 | version 1.9, 2019/12/03 16:37:21 |
|---|---|
| Line 1 | Line 1 |
| News about PCRE releases | News about PCRE releases |
| ------------------------ | ------------------------ |
| Note that this library (now called PCRE1) is now being maintained for bug fixes | |
| only. New projects are advised to use the new PCRE2 libraries. | |
| Release 8.43 23-February-2019 | |
| ----------------------------- | |
| This is a bug-fix release. | |
| Release 8.42 20-March-2018 | |
| -------------------------- | |
| This is a bug-fix release. | |
| Release 8.41 13-June-2017 | |
| ------------------------- | |
| This is a bug-fix release. | |
| Release 8.40 11-January-2017 | |
| ---------------------------- | |
| This is a bug-fix release. | |
| Release 8.39 14-June-2016 | |
| ------------------------- | |
| Some appropriate PCRE2 JIT improvements have been retro-fitted to PCRE1. Apart | |
| from that, this is another bug-fix release. Note that this library (now called | |
| PCRE1) is now being maintained for bug fixes only. New projects are advised to | |
| use the new PCRE2 libraries. | |
| Release 8.38 23-November-2015 | |
| ----------------------------- | |
| This is bug-fix release. Note that this library (now called PCRE1) is now being | |
| maintained for bug fixes only. New projects are advised to use the new PCRE2 | |
| libraries. | |
| Release 8.37 28-April-2015 | |
| -------------------------- | |
| This is bug-fix release. Note that this library (now called PCRE1) is now being | |
| maintained for bug fixes only. New projects are advised to use the new PCRE2 | |
| libraries. | |
| Release 8.36 26-September-2014 | |
| ------------------------------ | |
| This is primarily a bug-fix release. However, in addition, the Unicode data | |
| tables have been updated to Unicode 7.0.0. | |
| Release 8.35 04-April-2014 | |
| -------------------------- | |
| There have been performance improvements for classes containing non-ASCII | |
| characters and the "auto-possessification" feature has been extended. Other | |
| minor improvements have been implemented and bugs fixed. There is a new callout | |
| feature to enable applications to do detailed stack checks at compile time, to | |
| avoid running out of stack for deeply nested parentheses. The JIT compiler has | |
| been extended with experimental support for ARM-64, MIPS-64, and PPC-LE. | |
| Release 8.34 15-December-2013 | |
| ----------------------------- | |
| As well as fixing the inevitable bugs, performance has been improved by | |
| refactoring and extending the amount of "auto-possessification" that PCRE does. | |
| Other notable changes: | |
| . Implemented PCRE_INFO_MATCH_EMPTY, which yields 1 if the pattern can match | |
| an empty string. If it can, pcretest shows this in its information output. | |
| . A back reference to a named subpattern when there is more than one of the | |
| same name now checks them in the order in which they appear in the pattern. | |
| The first one that is set is used for the reference. Previously only the | |
| first one was inspected. This change makes PCRE more compatible with Perl. | |
| . Unicode character properties were updated from Unicode 6.3.0. | |
| . The character VT has been added to the set of characters that match \s and | |
| are generally treated as white space, following this same change in Perl | |
| 5.18. There is now no difference between "Perl space" and "POSIX space". | |
| . Perl has changed its handling of \8 and \9. If there is no previously | |
| encountered capturing group of those numbers, they are treated as the | |
| literal characters 8 and 9 instead of a binary zero followed by the | |
| literals. PCRE now does the same. | |
| . Following Perl, added \o{} to specify codepoints in octal, making it | |
| possible to specify values greater than 0777 and also making them | |
| unambiguous. | |
| . In UCP mode, \s was not matching two of the characters that Perl matches, | |
| namely NEL (U+0085) and MONGOLIAN VOWEL SEPARATOR (U+180E), though they | |
| were matched by \h. | |
| . Add JIT support for the 64 bit TileGX architecture. | |
| . Upgraded the handling of the POSIX classes [:graph:], [:print:], and | |
| [:punct:] when PCRE_UCP is set so as to include the same characters as Perl | |
| does in Unicode mode. | |
| . Perl no longer allows group names to start with digits, so I have made this | |
| change also in PCRE. | |
| . Added support for [[:<:]] and [[:>:]] as used in the BSD POSIX library to | |
| mean "start of word" and "end of word", respectively, as a transition aid. | |
| Release 8.33 28-May-2013 | |
| -------------------------- | |
| A number of bugs are fixed, and some performance improvements have been made. | |
| There are also some new features, of which these are the most important: | |
| . The behaviour of the backtracking verbs has been rationalized and | |
| documented in more detail. | |
| . JIT now supports callouts and all of the backtracking verbs. | |
| . Unicode validation has been updated in the light of Unicode Corrigendum #9, | |
| which points out that "non characters" are not "characters that may not | |
| appear in Unicode strings" but rather "characters that are reserved for | |
| internal use and have only local meaning". | |
| . (*LIMIT_MATCH=d) and (*LIMIT_RECURSION=d) have been added so that the | |
| creator of a pattern can specify lower (but not higher) limits for the | |
| matching process. | |
| . The PCRE_NEVER_UTF option is available to prevent pattern-writers from using | |
| the (*UTF) feature, as this could be a security issue. | |
| Release 8.32 30-November-2012 | |
| ----------------------------- | |
| This release fixes a number of bugs, but also has some new features. These are | |
| the highlights: | |
| . There is now support for 32-bit character strings and UTF-32. Like the | |
| 16-bit support, this is done by compiling a separate 32-bit library. | |
| . \X now matches a Unicode extended grapheme cluster. | |
| . Case-independent matching of Unicode characters that have more than one | |
| "other case" now makes all three (or more) characters equivalent. This | |
| applies, for example, to Greek Sigma, which has two lowercase versions. | |
| . Unicode character properties are updated to Unicode 6.2.0. | |
| . The EBCDIC support, which had decayed, has had a spring clean. | |
| . A number of JIT optimizations have been added, which give faster JIT | |
| execution speed. In addition, a new direct interface to JIT execution is | |
| available. This bypasses some of the sanity checks of pcre_exec() to give a | |
| noticeable speed-up. | |
| . A number of issues in pcregrep have been fixed, making it more compatible | |
| with GNU grep. In particular, --exclude and --include (and variants) apply | |
| to all files now, not just those obtained from scanning a directory | |
| recursively. In Windows environments, the default action for directories is | |
| now "skip" instead of "read" (which provokes an error). | |
| . If the --only-matching (-o) option in pcregrep is specified multiple | |
| times, each one causes appropriate output. For example, -o1 -o2 outputs the | |
| substrings matched by the 1st and 2nd capturing parentheses. A separating | |
| string can be specified by --om-separator (default empty). | |
| . When PCRE is built via Autotools using a version of gcc that has the | |
| "visibility" feature, it is used to hide internal library functions that are | |
| not part of the public API. | |
| Release 8.31 06-July-2012 | |
| ------------------------- | |
| This is mainly a bug-fixing release, with a small number of developments: | |
| . The JIT compiler now supports partial matching and the (*MARK) and | |
| (*COMMIT) verbs. | |
| . PCRE_INFO_MAXLOOKBEHIND can be used to find the longest lookbehind in a | |
| pattern. | |
| . There should be a performance improvement when using the heap instead of the | |
| stack for recursion. | |
| . pcregrep can now be linked with libedit as an alternative to libreadline. | |
| . pcregrep now has a --file-list option where the list of files to scan is | |
| given as a file. | |
| . pcregrep now recognizes binary files and there are related options. | |
| . The Unicode tables have been updated to 6.1.0. | |
| As always, the full list of changes is in the ChangeLog file. | |
| Release 8.30 04-February-2012 | |
| ----------------------------- | |
| Release 8.30 introduces a major new feature: support for 16-bit character | |
| strings, compiled as a separate library. There are a few changes to the | |
| 8-bit library, in addition to some bug fixes. | |
| . The pcre_info() function, which has been obsolete for over 10 years, has | |
| been removed. | |
| . When a compiled pattern was saved to a file and later reloaded on a host | |
| with different endianness, PCRE used automatically to swap the bytes in some | |
| of the data fields. With the advent of the 16-bit library, where more of this | |
| swapping is needed, it is no longer done automatically. Instead, the bad | |
| endianness is detected and a specific error is given. The user can then call | |
| a new function called pcre_pattern_to_host_byte_order() (or an equivalent | |
| 16-bit function) to do the swap. | |
| . In UTF-8 mode, the values 0xd800 to 0xdfff are not legal Unicode | |
| code points and are now faulted. (They are the so-called "surrogates" | |
| that are reserved for coding high values in UTF-16.) | |
| Release 8.21 12-Dec-2011 | |
| ------------------------ | |
| This is almost entirely a bug-fix release. The only new feature is the ability | |
| to obtain the size of the memory used by the JIT compiler. | |
| Release 8.20 21-Oct-2011 | |
| ------------------------ | |
| The main change in this release is the inclusion of Zoltan Herczeg's | |
| just-in-time compiler support, which can be accessed by building PCRE with | |
| --enable-jit. Large performance benefits can be had in many situations. 8.20 | |
| also fixes an unfortunate bug that was introduced in 8.13 as well as tidying up | |
| a number of infelicities and differences from Perl. | |
| Release 8.13 16-Aug-2011 | |
| ------------------------ | |
| This is mainly a bug-fix release. There has been a lot of internal refactoring. | |
| The Unicode tables have been updated. The only new feature in the library is | |
| the passing of *MARK information to callouts. Some additions have been made to | |
| pcretest to make testing easier and more comprehensive. There is a new option | |
| for pcregrep to adjust its internal buffer size. | |
| Release 8.12 15-Jan-2011 | |
| ------------------------ | |
| This release fixes some bugs in pcregrep, one of which caused the tests to fail | |
| on 64-bit big-endian systems. There are no changes to the code of the library. | |
| Release 8.11 10-Dec-2010 | |
| ------------------------ | |
| A number of bugs in the library and in pcregrep have been fixed. As always, see | |
| ChangeLog for details. The following are the non-bug-fix changes: | |
| . Added --match-limit and --recursion-limit to pcregrep. | |
| . Added an optional parentheses number to the -o and --only-matching options | |
| of pcregrep. | |
| . Changed the way PCRE_PARTIAL_HARD affects the matching of $, \z, \Z, \b, and | |
| \B. | |
| . Added PCRE_ERROR_SHORTUTF8 to make it possible to distinguish between a | |
| bad UTF-8 sequence and one that is incomplete when using PCRE_PARTIAL_HARD. | |
| . Recognize (*NO_START_OPT) at the start of a pattern to set the PCRE_NO_ | |
| START_OPTIMIZE option, which is now allowed at compile time | |
| Release 8.10 25-Jun-2010 | |
| ------------------------ | |
| There are two major additions: support for (*MARK) and friends, and the option | |
| PCRE_UCP, which changes the behaviour of \b, \d, \s, and \w (and their | |
| opposites) so that they make use of Unicode properties. There are also a number | |
| of lesser new features, and several bugs have been fixed. A new option, | |
| --line-buffered, has been added to pcregrep, for use when it is connected to | |
| pipes. | |
| Release 8.02 19-Mar-2010 | |
| ------------------------ | |
| Another bug-fix release. | |
| Release 8.01 19-Jan-2010 | |
| ------------------------ | |
| This is a bug-fix release. Several bugs in the code itself and some bugs and | |
| infelicities in the build system have been fixed. | |
| Release 8.00 19-Oct-09 | |
| ---------------------- | |
| Bugs have been fixed in the library and in pcregrep. There are also some | |
| enhancements. Restrictions on patterns used for partial matching have been | |
| removed, extra information is given for partial matches, the partial matching | |
| process has been improved, and an option to make a partial match override a | |
| full match is available. The "study" process has been enhanced by finding a | |
| lower bound matching length. Groups with duplicate numbers may now have | |
| duplicated names without the use of PCRE_DUPNAMES. However, they may not have | |
| different names. The documentation has been revised to reflect these changes. | |
| The version number has been expanded to 3 digits as it is clear that the rate | |
| of change is not slowing down. | |
| Release 7.9 11-Apr-09 | |
| --------------------- | |
| Mostly bugfixes and tidies with just a couple of minor functional additions. | |
| Release 7.8 05-Sep-08 | |
| --------------------- | |
| More bug fixes, plus a performance improvement in Unicode character property | |
| lookup. | |
| Release 7.7 07-May-08 | Release 7.7 07-May-08 |
| --------------------- | --------------------- |
| Line 396 some of the new functionality in Perl 5. | Line 733 some of the new functionality in Perl 5. |
| Another (I hope this is the last!) change has been made to the API for the | Another (I hope this is the last!) change has been made to the API for the |
| pcre_compile() function. An additional argument has been added to make it | pcre_compile() function. An additional argument has been added to make it |
| possible to pass over a pointer to character tables built in the current | possible to pass over a pointer to character tables built in the current |
| locale by pcre_maketables(). To use the default tables, this new arguement | locale by pcre_maketables(). To use the default tables, this new argument |
| should be passed as NULL. | should be passed as NULL. |
| IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.05 | IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.05 |