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

Diff of /code/trunk/NEWS

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

revision 289 by ph10, Sun Dec 23 12:17:20 2007 UTC revision 1465 by ph10, Fri Mar 14 15:58:19 2014 UTC
# Line 1  Line 1 
1  News about PCRE releases  News about PCRE releases
2  ------------------------  ------------------------
3    
4  Release 7.5 23-Dec-07  Release 8.35 14-March-2014
5    --------------------------
6    
7    There have been performance improvements for classes containing non-ASCII
8    characters and the "auto-possessification" feature has been extended. Other
9    minor improvements have been implemented and bugs fixed. There is a new callout
10    feature to enable applications to do detailed stack checks at compile time, to
11    avoid running out of stack for deeply nested parentheses. The JIT compiler has
12    been extended with experimental support for ARM-64, MIPS-64, and PPC-LE.
13    
14    
15    Release 8.34 15-December-2013
16    -----------------------------
17    
18    As well as fixing the inevitable bugs, performance has been improved by
19    refactoring and extending the amount of "auto-possessification" that PCRE does.
20    Other notable changes:
21    
22    .  Implemented PCRE_INFO_MATCH_EMPTY, which yields 1 if the pattern can match
23       an empty string. If it can, pcretest shows this in its information output.
24    
25    .  A back reference to a named subpattern when there is more than one of the
26       same name now checks them in the order in which they appear in the pattern.
27       The first one that is set is used for the reference. Previously only the
28       first one was inspected. This change makes PCRE more compatible with Perl.
29    
30    .  Unicode character properties were updated from Unicode 6.3.0.
31    
32    .  The character VT has been added to the set of characters that match \s and
33       are generally treated as white space, following this same change in Perl
34       5.18. There is now no difference between "Perl space" and "POSIX space".
35    
36    .  Perl has changed its handling of \8 and \9. If there is no previously
37       encountered capturing group of those numbers, they are treated as the
38       literal characters 8 and 9 instead of a binary zero followed by the
39       literals. PCRE now does the same.
40    
41    .  Following Perl, added \o{} to specify codepoints in octal, making it
42       possible to specify values greater than 0777 and also making them
43       unambiguous.
44    
45    .  In UCP mode, \s was not matching two of the characters that Perl matches,
46       namely NEL (U+0085) and MONGOLIAN VOWEL SEPARATOR (U+180E), though they
47       were matched by \h.
48    
49    .  Add JIT support for the 64 bit TileGX architecture.
50    
51    .  Upgraded the handling of the POSIX classes [:graph:], [:print:], and
52       [:punct:] when PCRE_UCP is set so as to include the same characters as Perl
53       does in Unicode mode.
54    
55    .  Perl no longer allows group names to start with digits, so I have made this
56       change also in PCRE.
57    
58    .  Added support for [[:<:]] and [[:>:]] as used in the BSD POSIX library to
59       mean "start of word" and "end of word", respectively, as a transition aid.
60    
61    
62    Release 8.33 28-May-2013
63    --------------------------
64    
65    A number of bugs are fixed, and some performance improvements have been made.
66    There are also some new features, of which these are the most important:
67    
68    .  The behaviour of the backtracking verbs has been rationalized and
69       documented in more detail.
70    
71    .  JIT now supports callouts and all of the backtracking verbs.
72    
73    .  Unicode validation has been updated in the light of Unicode Corrigendum #9,
74       which points out that "non characters" are not "characters that may not
75       appear in Unicode strings" but rather "characters that are reserved for
76       internal use and have only local meaning".
77    
78    .  (*LIMIT_MATCH=d) and (*LIMIT_RECURSION=d) have been added so that the
79       creator of a pattern can specify lower (but not higher) limits for the
80       matching process.
81    
82    .  The PCRE_NEVER_UTF option is available to prevent pattern-writers from using
83       the (*UTF) feature, as this could be a security issue.
84    
85    
86    Release 8.32 30-November-2012
87    -----------------------------
88    
89    This release fixes a number of bugs, but also has some new features. These are
90    the highlights:
91    
92    .  There is now support for 32-bit character strings and UTF-32. Like the
93       16-bit support, this is done by compiling a separate 32-bit library.
94    
95    .  \X now matches a Unicode extended grapheme cluster.
96    
97    .  Case-independent matching of Unicode characters that have more than one
98       "other case" now makes all three (or more) characters equivalent. This
99       applies, for example, to Greek Sigma, which has two lowercase versions.
100    
101    .  Unicode character properties are updated to Unicode 6.2.0.
102    
103    .  The EBCDIC support, which had decayed, has had a spring clean.
104    
105    .  A number of JIT optimizations have been added, which give faster JIT
106       execution speed. In addition, a new direct interface to JIT execution is
107       available. This bypasses some of the sanity checks of pcre_exec() to give a
108       noticeable speed-up.
109    
110    .  A number of issues in pcregrep have been fixed, making it more compatible
111       with GNU grep. In particular, --exclude and --include (and variants) apply
112       to all files now, not just those obtained from scanning a directory
113       recursively. In Windows environments, the default action for directories is
114       now "skip" instead of "read" (which provokes an error).
115    
116    .  If the --only-matching (-o) option in pcregrep is specified multiple
117       times, each one causes appropriate output. For example, -o1 -o2 outputs the
118       substrings matched by the 1st and 2nd capturing parentheses. A separating
119       string can be specified by --om-separator (default empty).
120    
121    .  When PCRE is built via Autotools using a version of gcc that has the
122       "visibility" feature, it is used to hide internal library functions that are
123       not part of the public API.
124    
125    
126    Release 8.31 06-July-2012
127    -------------------------
128    
129    This is mainly a bug-fixing release, with a small number of developments:
130    
131    . The JIT compiler now supports partial matching and the (*MARK) and
132      (*COMMIT) verbs.
133    
134    . PCRE_INFO_MAXLOOKBEHIND can be used to find the longest lookbehind in a
135      pattern.
136    
137    . There should be a performance improvement when using the heap instead of the
138      stack for recursion.
139    
140    . pcregrep can now be linked with libedit as an alternative to libreadline.
141    
142    . pcregrep now has a --file-list option where the list of files to scan is
143      given as a file.
144    
145    . pcregrep now recognizes binary files and there are related options.
146    
147    . The Unicode tables have been updated to 6.1.0.
148    
149    As always, the full list of changes is in the ChangeLog file.
150    
151    
152    Release 8.30 04-February-2012
153    -----------------------------
154    
155    Release 8.30 introduces a major new feature: support for 16-bit character
156    strings, compiled as a separate library. There are a few changes to the
157    8-bit library, in addition to some bug fixes.
158    
159    . The pcre_info() function, which has been obsolete for over 10 years, has
160      been removed.
161    
162    . When a compiled pattern was saved to a file and later reloaded on a host
163      with different endianness, PCRE used automatically to swap the bytes in some
164      of the data fields. With the advent of the 16-bit library, where more of this
165      swapping is needed, it is no longer done automatically. Instead, the bad
166      endianness is detected and a specific error is given. The user can then call
167      a new function called pcre_pattern_to_host_byte_order() (or an equivalent
168      16-bit function) to do the swap.
169    
170    . In UTF-8 mode, the values 0xd800 to 0xdfff are not legal Unicode
171      code points and are now faulted. (They are the so-called "surrogates"
172      that are reserved for coding high values in UTF-16.)
173    
174    
175    Release 8.21 12-Dec-2011
176    ------------------------
177    
178    This is almost entirely a bug-fix release. The only new feature is the ability
179    to obtain the size of the memory used by the JIT compiler.
180    
181    
182    Release 8.20 21-Oct-2011
183    ------------------------
184    
185    The main change in this release is the inclusion of Zoltan Herczeg's
186    just-in-time compiler support, which can be accessed by building PCRE with
187    --enable-jit. Large performance benefits can be had in many situations. 8.20
188    also fixes an unfortunate bug that was introduced in 8.13 as well as tidying up
189    a number of infelicities and differences from Perl.
190    
191    
192    Release 8.13 16-Aug-2011
193    ------------------------
194    
195    This is mainly a bug-fix release. There has been a lot of internal refactoring.
196    The Unicode tables have been updated. The only new feature in the library is
197    the passing of *MARK information to callouts. Some additions have been made to
198    pcretest to make testing easier and more comprehensive. There is a new option
199    for pcregrep to adjust its internal buffer size.
200    
201    
202    Release 8.12 15-Jan-2011
203    ------------------------
204    
205    This release fixes some bugs in pcregrep, one of which caused the tests to fail
206    on 64-bit big-endian systems. There are no changes to the code of the library.
207    
208    
209    Release 8.11 10-Dec-2010
210    ------------------------
211    
212    A number of bugs in the library and in pcregrep have been fixed. As always, see
213    ChangeLog for details. The following are the non-bug-fix changes:
214    
215    . Added --match-limit and --recursion-limit to pcregrep.
216    
217    . Added an optional parentheses number to the -o and --only-matching options
218      of pcregrep.
219    
220    . Changed the way PCRE_PARTIAL_HARD affects the matching of $, \z, \Z, \b, and
221      \B.
222    
223    . Added PCRE_ERROR_SHORTUTF8 to make it possible to distinguish between a
224      bad UTF-8 sequence and one that is incomplete when using PCRE_PARTIAL_HARD.
225    
226    . Recognize (*NO_START_OPT) at the start of a pattern to set the PCRE_NO_
227      START_OPTIMIZE option, which is now allowed at compile time
228    
229    
230    Release 8.10 25-Jun-2010
231    ------------------------
232    
233    There are two major additions: support for (*MARK) and friends, and the option
234    PCRE_UCP, which changes the behaviour of \b, \d, \s, and \w (and their
235    opposites) so that they make use of Unicode properties. There are also a number
236    of lesser new features, and several bugs have been fixed. A new option,
237    --line-buffered, has been added to pcregrep, for use when it is connected to
238    pipes.
239    
240    
241    Release 8.02 19-Mar-2010
242    ------------------------
243    
244    Another bug-fix release.
245    
246    
247    Release 8.01 19-Jan-2010
248    ------------------------
249    
250    This is a bug-fix release. Several bugs in the code itself and some bugs and
251    infelicities in the build system have been fixed.
252    
253    
254    Release 8.00 19-Oct-09
255    ----------------------
256    
257    Bugs have been fixed in the library and in pcregrep. There are also some
258    enhancements. Restrictions on patterns used for partial matching have been
259    removed, extra information is given for partial matches, the partial matching
260    process has been improved, and an option to make a partial match override a
261    full match is available. The "study" process has been enhanced by finding a
262    lower bound matching length. Groups with duplicate numbers may now have
263    duplicated names without the use of PCRE_DUPNAMES. However, they may not have
264    different names. The documentation has been revised to reflect these changes.
265    The version number has been expanded to 3 digits as it is clear that the rate
266    of change is not slowing down.
267    
268    
269    Release 7.9 11-Apr-09
270    ---------------------
271    
272    Mostly bugfixes and tidies with just a couple of minor functional additions.
273    
274    
275    Release 7.8 05-Sep-08
276    ---------------------
277    
278    More bug fixes, plus a performance improvement in Unicode character property
279    lookup.
280    
281    
282    Release 7.7 07-May-08
283    ---------------------
284    
285    This is once again mainly a bug-fix release, but there are a couple of new
286    features.
287    
288    
289    Release 7.6 28-Jan-08
290    ---------------------
291    
292    The main reason for having this release so soon after 7.5 is because it fixes a
293    potential buffer overflow problem in pcre_compile() when run in UTF-8 mode. In
294    addition, the CMake configuration files have been brought up to date.
295    
296    
297    Release 7.5 10-Jan-08
298  ---------------------  ---------------------
299    
300  This is mainly a bug-fix release. However the ability to link pcregrep with  This is mainly a bug-fix release. However the ability to link pcregrep with
# Line 380  some of the new functionality in Perl 5. Line 673  some of the new functionality in Perl 5.
673  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
674  pcre_compile() function. An additional argument has been added to make it  pcre_compile() function. An additional argument has been added to make it
675  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
676  locale by pcre_maketables(). To use the default tables, this new arguement  locale by pcre_maketables(). To use the default tables, this new argument
677  should be passed as NULL.  should be passed as NULL.
678    
679            IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.05            IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.05

Legend:
Removed from v.289  
changed lines
  Added in v.1465

  ViewVC Help
Powered by ViewVC 1.1.5