Opened 7 years ago

Closed 7 years ago

#9618 closed enhancement (fixed)

pcre2-10.30

Reported by: bdubbs@… Owned by: bdubbs@…
Priority: normal Milestone: 8.1
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

New minor version.

Change History (4)

comment:1 by ken@…, 7 years ago

This built for me in chroot, and was found by git, but I can't take the ticket because I trashed the system.

comment:2 by bdubbs@…, 7 years ago

Owner: changed from blfs-book@… to bdubbs@…
Status: newassigned

comment:3 by bdubbs@…, 7 years ago

Version 10.30 14-August-2017

  1. The main interpreter, pcre2_match(), has been refactored into a new version that does not use recursive function calls (and therefore the system stack) for remembering backtracking positions. This makes --disable-stack-for-recursion a NOOP. The new implementation allows backtracking into recursive group calls in patterns, making it more compatible with Perl, and also fixes some other previously hard-to-do issues. For patterns that have a lot of backtracking, the heap is now used, and there is explicit limit on the amount, settable by pcre2_set_heap_limit() or (*LIMIT_HEAP=xxx). The "recursion limit" is retained, but is renamed as "depth limit" (though the old names remain for compatibility).

There is also a change in the way callouts from pcre2_match() are handled. The offset_vector field in the callout block is no longer a pointer to the actual ovector that was passed to the matching function in the match data block. Instead it points to an internal ovector of a size large enough to hold all possible captured substrings in the pattern.

  1. The new option PCRE2_ENDANCHORED insists that a pattern match must end at the end of the subject.

  1. The new option PCRE2_EXTENDED_MORE implements Perl's /xx feature, and pcre2test is upgraded to support it. Setting within the pattern by (?xx) is also supported.
  1. (?n) can be used to set PCRE2_NO_AUTO_CAPTURE, because Perl now has this.
  1. Additional compile options in the compile context are now available, and the first two are: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES and PCRE2_EXTRA_BAD_ESCAPE_IS LITERAL.
  1. The newline type PCRE2_NEWLINE_NUL is now available.
  1. The match limit value now also applies to pcre2_dfa_match() as there are patterns that can use up a lot of resources without necessarily recursing very deeply.
  1. The option REG_PEND (a GNU extension) is now available for the POSIX wrapper. Also there is a new option PCRE2_LITERAL which is used to support REG_NOSPEC.
  1. PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD are implemented for the benefit of pcre2grep, and pcre2grep's -F, -w, and -x options are re-implemented using PCRE2_LITERAL, PCRE2_EXTRA_MATCH_WORD, and PCRE2_EXTRA_MATCH_LINE. This is tidier and also fixes some bugs.
  1. The Unicode tables are upgraded from Unicode 8.0.0 to Unicode 10.0.0.
  1. There are some experimental functions for converting foreign patterns (globs and POSIX patterns) into PCRE2 patterns.

comment:4 by bdubbs@…, 7 years ago

Resolution: fixed
Status: assignedclosed

Fixed at revision 19059.

Note: See TracTickets for help on using tickets.