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