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

Contents of /code/trunk/NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1086 - (show annotations)
Tue Apr 16 15:34:27 2019 UTC (8 weeks, 4 days ago) by ph10
File size: 11234 byte(s)
Final file tidies for 10.33.
1 News about PCRE2 releases
2 -------------------------
3
4
5 Version 10.33-RC1 16-April-2019
6 -------------------------------
7
8 Yet more bugfixes, tidies, and a few enhancements, summarized here (see
9 ChangeLog for the full list):
10
11 1. Callouts from pcre2_substitute() are now available.
12
13 2. The POSIX functions are now all called pcre2_regcomp() etc., with wrapper
14 functions that use the standard POSIX names. However, in pcre2posix.h the POSIX
15 names are defined as macros. This should help avoid linking with the wrong
16 library in some environments, while still exporting the POSIX names for
17 pre-existing programs that use them.
18
19 3. Some new options:
20
21 (a) PCRE2_EXTRA_ESCAPED_CR_IS_LF makes \r behave as \n.
22
23 (b) PCRE2_EXTRA_ALT_BSUX enables support for ECMAScript 6's \u{hh...}
24 construct.
25
26 (c) PCRE2_COPY_MATCHED_SUBJECT causes a copy of a matched subject to be
27 made, instead of just remembering a pointer.
28
29 4. Some new Perl features:
30
31 (a) Perl 5.28's experimental alphabetic names for atomic groups and
32 lookaround assertions, for example, (*pla:...) and (*atomic:...).
33
34 (b) The new Perl "script run" features (*script_run:...) and
35 (*atomic_script_run:...) aka (*sr:...) and (*asr:...).
36
37 (c) When PCRE2_UTF is set, allow non-ASCII letters and decimal digits in
38 capture group names.
39
40 5. --disable-percent-zt disables the use of %zu and %td in formatting strings
41 in pcre2test. They were already automatically disabled for VC and older C
42 compilers.
43
44 6. Some changes related to callouts in pcre2grep:
45
46 (a) Support for running an external program under VMS has been added, in
47 addition to Windows and fork() support.
48
49 (b) --disable-pcre2grep-callout-fork restricts the callout support in
50 to the inbuilt echo facility.
51
52
53 Version 10.32 10-September-2018
54 -------------------------------
55
56 This is another mainly bugfix and tidying release with a few minor
57 enhancements. These are the main ones:
58
59 1. pcre2grep now supports the inclusion of binary zeros in patterns that are
60 read from files via the -f option.
61
62 2. ./configure now supports --enable-jit=auto, which automatically enables JIT
63 if the hardware supports it.
64
65 3. In pcre2_dfa_match(), internal recursive calls no longer use the stack for
66 local workspace and local ovectors. Instead, an initial block of stack is
67 reserved, but if this is insufficient, heap memory is used. The heap limit
68 parameter now applies to pcre2_dfa_match().
69
70 4. Updated to Unicode version 11.0.0.
71
72 5. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported.
73
74 6. Added support for \N{U+dddd}, but only in Unicode mode.
75
76 7. Added support for (?^) to unset all imnsx options.
77
78
79 Version 10.31 12-February-2018
80 ------------------------------
81
82 This is mainly a bugfix and tidying release (see ChangeLog for full details).
83 However, there are some minor enhancements.
84
85 1. New pcre2_config() options: PCRE2_CONFIG_NEVER_BACKSLASH_C and
86 PCRE2_CONFIG_COMPILED_WIDTHS.
87
88 2. New pcre2_pattern_info() option PCRE2_INFO_EXTRAOPTIONS to retrieve the
89 extra compile time options.
90
91 3. There are now public names for all the pcre2_compile() error numbers.
92
93 4. Added PCRE2_CALLOUT_STARTMATCH and PCRE2_CALLOUT_BACKTRACK bits to a new
94 field callout_flags in callout blocks.
95
96
97 Version 10.30 14-August-2017
98 ----------------------------
99
100 The full list of changes that includes bugfixes and tidies is, as always, in
101 ChangeLog. These are the most important new features:
102
103 1. The main interpreter, pcre2_match(), has been refactored into a new version
104 that does not use recursive function calls (and therefore the system stack) for
105 remembering backtracking positions. This makes --disable-stack-for-recursion a
106 NOOP. The new implementation allows backtracking into recursive group calls in
107 patterns, making it more compatible with Perl, and also fixes some other
108 previously hard-to-do issues. For patterns that have a lot of backtracking, the
109 heap is now used, and there is an explicit limit on the amount, settable by
110 pcre2_set_heap_limit() or (*LIMIT_HEAP=xxx). The "recursion limit" is retained,
111 but is renamed as "depth limit" (though the old names remain for
112 compatibility).
113
114 There is also a change in the way callouts from pcre2_match() are handled. The
115 offset_vector field in the callout block is no longer a pointer to the
116 actual ovector that was passed to the matching function in the match data
117 block. Instead it points to an internal ovector of a size large enough to hold
118 all possible captured substrings in the pattern.
119
120 2. The new option PCRE2_ENDANCHORED insists that a pattern match must end at
121 the end of the subject.
122
123 3. The new option PCRE2_EXTENDED_MORE implements Perl's /xx feature, and
124 pcre2test is upgraded to support it. Setting within the pattern by (?xx) is
125 also supported.
126
127 4. (?n) can be used to set PCRE2_NO_AUTO_CAPTURE, because Perl now has this.
128
129 5. Additional compile options in the compile context are now available, and the
130 first two are: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES and
131 PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL.
132
133 6. The newline type PCRE2_NEWLINE_NUL is now available.
134
135 7. The match limit value now also applies to pcre2_dfa_match() as there are
136 patterns that can use up a lot of resources without necessarily recursing very
137 deeply.
138
139 8. The option REG_PEND (a GNU extension) is now available for the POSIX
140 wrapper. Also there is a new option PCRE2_LITERAL which is used to support
141 REG_NOSPEC.
142
143 9. PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD are implemented for the
144 benefit of pcre2grep, and pcre2grep's -F, -w, and -x options are re-implemented
145 using PCRE2_LITERAL, PCRE2_EXTRA_MATCH_WORD, and PCRE2_EXTRA_MATCH_LINE. This
146 is tidier and also fixes some bugs.
147
148 10. The Unicode tables are upgraded from Unicode 8.0.0 to Unicode 10.0.0.
149
150 11. There are some experimental functions for converting foreign patterns
151 (globs and POSIX patterns) into PCRE2 patterns.
152
153
154 Version 10.23 14-February-2017
155 ------------------------------
156
157 1. ChangeLog has the details of a lot of bug fixes and tidies.
158
159 2. There has been a major re-factoring of the pcre2_compile.c file. Most syntax
160 checking is now done in the pre-pass that identifies capturing groups. This has
161 reduced the amount of duplication and made the code tidier. While doing this,
162 some minor bugs and Perl incompatibilities were fixed (see ChangeLog for
163 details.)
164
165 3. Back references are now permitted in lookbehind assertions when there are
166 no duplicated group numbers (that is, (?| has not been used), and, if the
167 reference is by name, there is only one group of that name. The referenced
168 group must, of course be of fixed length.
169
170 4. \g{+<number>} (e.g. \g{+2} ) is now supported. It is a "forward back
171 reference" and can be useful in repetitions (compare \g{-<number>} ). Perl does
172 not recognize this syntax.
173
174 5. pcre2grep now automatically expands its buffer up to a maximum set by
175 --max-buffer-size.
176
177 6. The -t option (grand total) has been added to pcre2grep.
178
179 7. A new function called pcre2_code_copy_with_tables() exists to copy a
180 compiled pattern along with a private copy of the character tables that is
181 uses.
182
183 8. A user supplied a number of patches to upgrade pcre2grep under Windows and
184 tidy the code.
185
186 9. Several updates have been made to pcre2test and test scripts (see
187 ChangeLog).
188
189
190 Version 10.22 29-July-2016
191 --------------------------
192
193 1. ChangeLog has the details of a number of bug fixes.
194
195 2. The POSIX wrapper function regcomp() did not used to support back references
196 and subroutine calls if called with the REG_NOSUB option. It now does.
197
198 3. A new function, pcre2_code_copy(), is added, to make a copy of a compiled
199 pattern.
200
201 4. Support for string callouts is added to pcre2grep.
202
203 5. Added the PCRE2_NO_JIT option to pcre2_match().
204
205 6. The pcre2_get_error_message() function now returns with a negative error
206 code if the error number it is given is unknown.
207
208 7. Several updates have been made to pcre2test and test scripts (see
209 ChangeLog).
210
211
212 Version 10.21 12-January-2016
213 -----------------------------
214
215 1. Many bugs have been fixed. A large number of them were provoked only by very
216 strange pattern input, and were discovered by fuzzers. Some others were
217 discovered by code auditing. See ChangeLog for details.
218
219 2. The Unicode tables have been updated to Unicode version 8.0.0.
220
221 3. For Perl compatibility in EBCDIC environments, ranges such as a-z in a
222 class, where both values are literal letters in the same case, omit the
223 non-letter EBCDIC code points within the range.
224
225 4. There have been a number of enhancements to the pcre2_substitute() function,
226 giving more flexibility to replacement facilities. It is now also possible to
227 cause the function to return the needed buffer size if the one given is too
228 small.
229
230 5. The PCRE2_ALT_VERBNAMES option causes the "name" parts of special verbs such
231 as (*THEN:name) to be processed for backslashes and to take note of
232 PCRE2_EXTENDED.
233
234 6. PCRE2_INFO_HASBACKSLASHC makes it possible for a client to find out if a
235 pattern uses \C, and --never-backslash-C makes it possible to compile a version
236 PCRE2 in which the use of \C is always forbidden.
237
238 7. A limit to the length of pattern that can be handled can now be set by
239 calling pcre2_set_max_pattern_length().
240
241 8. When matching an unanchored pattern, a match can be required to begin within
242 a given number of code units after the start of the subject by calling
243 pcre2_set_offset_limit().
244
245 9. The pcre2test program has been extended to test new facilities, and it can
246 now run the tests when LF on its own is not a valid newline sequence.
247
248 10. The RunTest script has also been updated to enable more tests to be run.
249
250 11. There have been some minor performance enhancements.
251
252
253 Version 10.20 30-June-2015
254 --------------------------
255
256 1. Callouts with string arguments and the pcre2_callout_enumerate() function
257 have been implemented.
258
259 2. The PCRE2_NEVER_BACKSLASH_C option, which locks out the use of \C, is added.
260
261 3. The PCRE2_ALT_CIRCUMFLEX option lets ^ match after a newline at the end of a
262 subject in multiline mode.
263
264 4. The way named subpatterns are handled has been refactored. The previous
265 approach had several bugs.
266
267 5. The handling of \c in EBCDIC environments has been changed to conform to the
268 perlebcdic document. This is an incompatible change.
269
270 6. Bugs have been mended, many of them discovered by fuzzers.
271
272
273 Version 10.10 06-March-2015
274 ---------------------------
275
276 1. Serialization and de-serialization functions have been added to the API,
277 making it possible to save and restore sets of compiled patterns, though
278 restoration must be done in the same environment that was used for compilation.
279
280 2. The (*NO_JIT) feature has been added; this makes it possible for a pattern
281 creator to specify that JIT is not to be used.
282
283 3. A number of bugs have been fixed. In particular, bugs that caused building
284 on Windows using CMake to fail have been mended.
285
286
287 Version 10.00 05-January-2015
288 -----------------------------
289
290 Version 10.00 is the first release of PCRE2, a revised API for the PCRE
291 library. Changes prior to 10.00 are logged in the ChangeLog file for the old
292 API, up to item 20 for release 8.36. New programs are recommended to use the
293 new library. Programs that use the original (PCRE1) API will need changing
294 before linking with the new library.
295
296 ****

  ViewVC Help
Powered by ViewVC 1.1.5