1 |
News about PCRE releases |
News about PCRE releases |
2 |
------------------------ |
------------------------ |
3 |
|
|
4 |
|
Release 8.32 12-November-2012 |
5 |
|
----------------------------- |
6 |
|
|
7 |
|
This release fixes a number of bugs, but also has some new features. These are |
8 |
|
the highlights: |
9 |
|
|
10 |
|
. There is now support for 32-bit character strings and UTF-32. Like the |
11 |
|
16-bit support, this is done by compiling a separate 32-bit library. |
12 |
|
|
13 |
|
. \X now matches a Unicode extended grapheme cluster. |
14 |
|
|
15 |
|
. Case-independent matching of Unicode characters that have more than one |
16 |
|
"other case" now makes all three (or more) characters equivalent. This |
17 |
|
applies, for example, to Greek Sigma, which has two lowercase versions. |
18 |
|
|
19 |
|
. Unicode character properties are updated to Unicode 6.2.0. |
20 |
|
|
21 |
|
. The EBCDIC support, which had decayed, has had a spring clean. |
22 |
|
|
23 |
|
. A number of JIT optimizations have been added, which give faster JIT |
24 |
|
execution speed. In addition, a new direct interface to JIT execution is |
25 |
|
available. This bypasses some of the sanity checks of pcre_exec() to give a |
26 |
|
noticeable speed-up. |
27 |
|
|
28 |
|
. A number of issues in pcregrep have been fixed, making it more compatible |
29 |
|
with GNU grep. In particular, --exclude and --include (and variants) apply |
30 |
|
to all files now, not just those obtained from scanning a directory |
31 |
|
recursively. In Windows environments, the default action for directories is |
32 |
|
now "skip" instead of "read" (which provokes an error). |
33 |
|
|
34 |
|
. If the --only-matching (-o) option in pcregrep is specified multiple |
35 |
|
times, each one causes appropriate output. For example, -o1 -o2 outputs the |
36 |
|
substrings matched by the 1st and 2nd capturing parentheses. A separating |
37 |
|
string can be specified by --om-separator (default empty). |
38 |
|
|
39 |
|
. When PCRE is built via Autotools using a version of gcc that has the |
40 |
|
"visibility" feature, it is used to hide internal library functions that are |
41 |
|
not part of the public API. |
42 |
|
|
43 |
|
|
44 |
|
Release 8.31 06-July-2012 |
45 |
|
------------------------- |
46 |
|
|
47 |
|
This is mainly a bug-fixing release, with a small number of developments: |
48 |
|
|
49 |
|
. The JIT compiler now supports partial matching and the (*MARK) and |
50 |
|
(*COMMIT) verbs. |
51 |
|
|
52 |
|
. PCRE_INFO_MAXLOOKBEHIND can be used to find the longest lookbehind in a |
53 |
|
pattern. |
54 |
|
|
55 |
|
. There should be a performance improvement when using the heap instead of the |
56 |
|
stack for recursion. |
57 |
|
|
58 |
|
. pcregrep can now be linked with libedit as an alternative to libreadline. |
59 |
|
|
60 |
|
. pcregrep now has a --file-list option where the list of files to scan is |
61 |
|
given as a file. |
62 |
|
|
63 |
|
. pcregrep now recognizes binary files and there are related options. |
64 |
|
|
65 |
|
. The Unicode tables have been updated to 6.1.0. |
66 |
|
|
67 |
|
As always, the full list of changes is in the ChangeLog file. |
68 |
|
|
69 |
|
|
70 |
|
Release 8.30 04-February-2012 |
71 |
|
----------------------------- |
72 |
|
|
73 |
|
Release 8.30 introduces a major new feature: support for 16-bit character |
74 |
|
strings, compiled as a separate library. There are a few changes to the |
75 |
|
8-bit library, in addition to some bug fixes. |
76 |
|
|
77 |
|
. The pcre_info() function, which has been obsolete for over 10 years, has |
78 |
|
been removed. |
79 |
|
|
80 |
|
. When a compiled pattern was saved to a file and later reloaded on a host |
81 |
|
with different endianness, PCRE used automatically to swap the bytes in some |
82 |
|
of the data fields. With the advent of the 16-bit library, where more of this |
83 |
|
swapping is needed, it is no longer done automatically. Instead, the bad |
84 |
|
endianness is detected and a specific error is given. The user can then call |
85 |
|
a new function called pcre_pattern_to_host_byte_order() (or an equivalent |
86 |
|
16-bit function) to do the swap. |
87 |
|
|
88 |
|
. In UTF-8 mode, the values 0xd800 to 0xdfff are not legal Unicode |
89 |
|
code points and are now faulted. (They are the so-called "surrogates" |
90 |
|
that are reserved for coding high values in UTF-16.) |
91 |
|
|
92 |
|
|
93 |
|
Release 8.21 12-Dec-2011 |
94 |
|
------------------------ |
95 |
|
|
96 |
|
This is almost entirely a bug-fix release. The only new feature is the ability |
97 |
|
to obtain the size of the memory used by the JIT compiler. |
98 |
|
|
99 |
|
|
100 |
|
Release 8.20 21-Oct-2011 |
101 |
|
------------------------ |
102 |
|
|
103 |
|
The main change in this release is the inclusion of Zoltan Herczeg's |
104 |
|
just-in-time compiler support, which can be accessed by building PCRE with |
105 |
|
--enable-jit. Large performance benefits can be had in many situations. 8.20 |
106 |
|
also fixes an unfortunate bug that was introduced in 8.13 as well as tidying up |
107 |
|
a number of infelicities and differences from Perl. |
108 |
|
|
109 |
|
|
110 |
|
Release 8.13 16-Aug-2011 |
111 |
|
------------------------ |
112 |
|
|
113 |
|
This is mainly a bug-fix release. There has been a lot of internal refactoring. |
114 |
|
The Unicode tables have been updated. The only new feature in the library is |
115 |
|
the passing of *MARK information to callouts. Some additions have been made to |
116 |
|
pcretest to make testing easier and more comprehensive. There is a new option |
117 |
|
for pcregrep to adjust its internal buffer size. |
118 |
|
|
119 |
|
|
120 |
|
Release 8.12 15-Jan-2011 |
121 |
|
------------------------ |
122 |
|
|
123 |
|
This release fixes some bugs in pcregrep, one of which caused the tests to fail |
124 |
|
on 64-bit big-endian systems. There are no changes to the code of the library. |
125 |
|
|
126 |
|
|
127 |
|
Release 8.11 10-Dec-2010 |
128 |
|
------------------------ |
129 |
|
|
130 |
|
A number of bugs in the library and in pcregrep have been fixed. As always, see |
131 |
|
ChangeLog for details. The following are the non-bug-fix changes: |
132 |
|
|
133 |
|
. Added --match-limit and --recursion-limit to pcregrep. |
134 |
|
|
135 |
|
. Added an optional parentheses number to the -o and --only-matching options |
136 |
|
of pcregrep. |
137 |
|
|
138 |
|
. Changed the way PCRE_PARTIAL_HARD affects the matching of $, \z, \Z, \b, and |
139 |
|
\B. |
140 |
|
|
141 |
|
. Added PCRE_ERROR_SHORTUTF8 to make it possible to distinguish between a |
142 |
|
bad UTF-8 sequence and one that is incomplete when using PCRE_PARTIAL_HARD. |
143 |
|
|
144 |
|
. Recognize (*NO_START_OPT) at the start of a pattern to set the PCRE_NO_ |
145 |
|
START_OPTIMIZE option, which is now allowed at compile time |
146 |
|
|
147 |
|
|
148 |
|
Release 8.10 25-Jun-2010 |
149 |
|
------------------------ |
150 |
|
|
151 |
|
There are two major additions: support for (*MARK) and friends, and the option |
152 |
|
PCRE_UCP, which changes the behaviour of \b, \d, \s, and \w (and their |
153 |
|
opposites) so that they make use of Unicode properties. There are also a number |
154 |
|
of lesser new features, and several bugs have been fixed. A new option, |
155 |
|
--line-buffered, has been added to pcregrep, for use when it is connected to |
156 |
|
pipes. |
157 |
|
|
158 |
|
|
159 |
|
Release 8.02 19-Mar-2010 |
160 |
|
------------------------ |
161 |
|
|
162 |
|
Another bug-fix release. |
163 |
|
|
164 |
|
|
165 |
|
Release 8.01 19-Jan-2010 |
166 |
|
------------------------ |
167 |
|
|
168 |
|
This is a bug-fix release. Several bugs in the code itself and some bugs and |
169 |
|
infelicities in the build system have been fixed. |
170 |
|
|
171 |
|
|
172 |
|
Release 8.00 19-Oct-09 |
173 |
|
---------------------- |
174 |
|
|
175 |
|
Bugs have been fixed in the library and in pcregrep. There are also some |
176 |
|
enhancements. Restrictions on patterns used for partial matching have been |
177 |
|
removed, extra information is given for partial matches, the partial matching |
178 |
|
process has been improved, and an option to make a partial match override a |
179 |
|
full match is available. The "study" process has been enhanced by finding a |
180 |
|
lower bound matching length. Groups with duplicate numbers may now have |
181 |
|
duplicated names without the use of PCRE_DUPNAMES. However, they may not have |
182 |
|
different names. The documentation has been revised to reflect these changes. |
183 |
|
The version number has been expanded to 3 digits as it is clear that the rate |
184 |
|
of change is not slowing down. |
185 |
|
|
186 |
|
|
187 |
|
Release 7.9 11-Apr-09 |
188 |
|
--------------------- |
189 |
|
|
190 |
|
Mostly bugfixes and tidies with just a couple of minor functional additions. |
191 |
|
|
192 |
|
|
193 |
|
Release 7.8 05-Sep-08 |
194 |
|
--------------------- |
195 |
|
|
196 |
|
More bug fixes, plus a performance improvement in Unicode character property |
197 |
|
lookup. |
198 |
|
|
199 |
|
|
200 |
|
Release 7.7 07-May-08 |
201 |
|
--------------------- |
202 |
|
|
203 |
|
This is once again mainly a bug-fix release, but there are a couple of new |
204 |
|
features. |
205 |
|
|
206 |
|
|
207 |
|
Release 7.6 28-Jan-08 |
208 |
|
--------------------- |
209 |
|
|
210 |
|
The main reason for having this release so soon after 7.5 is because it fixes a |
211 |
|
potential buffer overflow problem in pcre_compile() when run in UTF-8 mode. In |
212 |
|
addition, the CMake configuration files have been brought up to date. |
213 |
|
|
214 |
|
|
215 |
|
Release 7.5 10-Jan-08 |
216 |
|
--------------------- |
217 |
|
|
218 |
|
This is mainly a bug-fix release. However the ability to link pcregrep with |
219 |
|
libz or libbz2 and the ability to link pcretest with libreadline have been |
220 |
|
added. Also the --line-offsets and --file-offsets options were added to |
221 |
|
pcregrep. |
222 |
|
|
223 |
|
|
224 |
|
Release 7.4 21-Sep-07 |
225 |
|
--------------------- |
226 |
|
|
227 |
|
The only change of specification is the addition of options to control whether |
228 |
|
\R matches any Unicode line ending (the default) or just CR, LF, and CRLF. |
229 |
|
Otherwise, the changes are bug fixes and a refactoring to reduce the number of |
230 |
|
relocations needed in a shared library. There have also been some documentation |
231 |
|
updates, in particular, some more information about using CMake to build PCRE |
232 |
|
has been added to the NON-UNIX-USE file. |
233 |
|
|
234 |
|
|
235 |
Release 7.3 28-Aug-07 |
Release 7.3 28-Aug-07 |
236 |
--------------------- |
--------------------- |