Skip to content

Commit

Permalink
Update to 10.40
Browse files Browse the repository at this point in the history
  • Loading branch information
kiyolee committed Apr 22, 2022
1 parent 2413754 commit 39c1737
Show file tree
Hide file tree
Showing 82 changed files with 22,463 additions and 10,066 deletions.
6 changes: 3 additions & 3 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Email domain: gmail.com
Retired from University of Cambridge Computing Service,
Cambridge, England.

Copyright (c) 1997-2021 University of Cambridge
Copyright (c) 1997-2022 University of Cambridge
All rights reserved


Expand All @@ -19,7 +19,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester
Emain domain: freemail.hu

Copyright(c) 2010-2021 Zoltan Herczeg
Copyright(c) 2010-2022 Zoltan Herczeg
All rights reserved.


Expand All @@ -30,7 +30,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester
Emain domain: freemail.hu

Copyright(c) 2009-2021 Zoltan Herczeg
Copyright(c) 2009-2022 Zoltan Herczeg
All rights reserved.

####
105 changes: 105 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,6 +1,111 @@
Change Log for PCRE2
--------------------


Version 10.40 15-April-2022
---------------------------

1. Merged patch from @carenas (GitHub #35, 7db87842) to fix pcre2grep incorrect
handling of multiple passes.

2. Merged patch from @carenas (GitHub #36, dae47509) to fix portability issue
in pcre2grep with buffered fseek(stdin).

3. Merged patch from @carenas (GitHub #37, acc520924) to fix tests when -S is
not supported.

4. Revert an unintended change in JIT repeat detection.

5. Merged patch from @carenas (GitHub #52, b037bfa1) to fix build on GNU Hurd.

6. Merged documentation and comments patches from @carenas (GitHub #47).

7. Merged patch from @carenas (GitHub #49) to remove obsolete JFriedl test code
from pcre2grep.

8. Merged patch from @carenas (GitHub #48) to fix CMake install issue #46.

9. Merged patch from @carenas (GitHub #53) fixing NULL checks in matching and
substituting.

10. Add null_subject and null_replacement modifiers to pcre2test.

11. Add check for NULL subject to POSIX regexec() function.

12. Add check for NULL replacement to pcre2_substitute().

13. For the subject arguments of pcre2_match(), pcre2_dfa_match(), and
pcre2_substitute(), and the replacement argument of the latter, if the pointer
is NULL and the length is zero, treat as an empty string. Apparently a number
of applications treat NULL/0 in this way.

14. Added support for Bidi_Class and a number of binary Unicode properties,
including Bidi_Control.

15. Fix some minor issues raised by clang sanitize.

16. Very minor code speed up for maximizing character property matches.

17. A number of changes to script matching for \p and \P:

(a) Script extensions for a character are now coded as a bitmap instead of
a list of script numbers, which should be faster and does not need a
loop.

(b) Added the syntax \p{script:xxx} and \p{script_extensions:xxx} (synonyms
sc and scx).

(c) Changed \p{scriptname} from being the same as \p{sc:scriptname} to being
the same as \p{scx:scriptname} because this change happened in Perl at
release 5.26.

(d) The standard Unicode 4-letter abbreviations for script names are now
recognized.

(e) In accordance with Unicode and Perl's "loose matching" rules, spaces,
hyphens, and underscores are ignored in property names, which are then
matched independent of case.

18. The Python scripts in the maint directory have been refactored. There are
now three scripts that generate pcre2_ucd.c, pcre2_ucp.h, and pcre2_ucptables.c
(which is #included by pcre2_tables.c). The data lists that used to be
duplicated are now held in a single common Python module.

19. On CHERI, and thus Arm's Morello prototype, pointers are represented as
hardware capabilities, which consist of both an integer address and additional
metadata, meaning they are twice the size of the platform's size_t type, i.e.
16 bytes on a 64-bit system. The ovector member of heapframe happens to only be
8 byte aligned, and so computing frame_size ended up with a multiple of 8 but
not 16. Whilst the first frame was always suitably aligned, this then
misaligned the frame that follows, resulting in an alignment fault when storing
a pointer to Fecode at the start of match. Patch to fix this issue by Jessica
Clarke PR#72.

20. Added -LP and -LS listing options to pcre2test.

21. A user discovered that the library names in CMakeLists.txt for MSVC
debugger (PDB) files were incorrect - perhaps never tried for PCRE2?

22. An item such as [Aa] is optimized into a caseless single character match.
When this was quantified (e.g. [Aa]{2}) and was also the last literal item in a
pattern, the optimizing "must be present for a match" character check was not
being flagged as caseless, causing some matches that should have succeeded to
fail.

23. Fixed a unicode properrty matching issue in JIT. The character was not
fully read in caseless matching.

24. Fixed an issue affecting recursions in JIT caused by duplicated data
transfers.

25. Merged patch from @carenas (GitHub #96) which fixes some problems with
pcre2test and readline/readedit:

* Use the right header for libedit in FreeBSD with autoconf
* Really allow libedit with cmake
* Avoid using readline headers with libedit


Version 10.39 29-October-2021
-----------------------------

Expand Down
7 changes: 4 additions & 3 deletions HACKING
Original file line number Diff line number Diff line change
Expand Up @@ -546,8 +546,9 @@ Each is followed by two code units that encode the desired property as a type
and a value. The types are a set of #defines of the form PT_xxx, and the values
are enumerations of the form ucp_xx, defined in the pcre2_ucp.h source file.
The value is relevant only for PT_GC (General Category), PT_PC (Particular
Category), PT_SC (Script), and the pseudo-property PT_CLIST, which is used to
identify a list of case-equivalent characters when there are three or more.
Category), PT_SC (Script), PT_BIDICL (Bidi Class), and the pseudo-property
PT_CLIST, which is used to identify a list of case-equivalent characters when
there are three or more.

Repeats of these items use the OP_TYPESTAR etc. set of opcodes, followed by
three code units: OP_PROP or OP_NOTPROP, and then the desired property type and
Expand Down Expand Up @@ -827,4 +828,4 @@ not a real opcode, but is used to check at compile time that tables indexed by
opcode are the correct length, in order to catch updating errors.

Philip Hazel
12 July 2019
December 2021
6 changes: 3 additions & 3 deletions LICENCE
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Email domain: gmail.com
Retired from University of Cambridge Computing Service,
Cambridge, England.

Copyright (c) 1997-2021 University of Cambridge
Copyright (c) 1997-2022 University of Cambridge
All rights reserved.


Expand All @@ -37,7 +37,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester
Email domain: freemail.hu

Copyright(c) 2010-2021 Zoltan Herczeg
Copyright(c) 2010-2022 Zoltan Herczeg
All rights reserved.


Expand All @@ -48,7 +48,7 @@ Written by: Zoltan Herczeg
Email local part: hzmester
Email domain: freemail.hu

Copyright(c) 2009-2021 Zoltan Herczeg
Copyright(c) 2009-2022 Zoltan Herczeg
All rights reserved.


Expand Down
32 changes: 32 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,38 @@ News about PCRE2 releases
-------------------------


Version 10.40 15-April-2022
---------------------------

This is mostly a bug-fixing and code-tidying release. However, there are some
extensions to Unicode property handling:

* Added support for Bidi_Class and a number of binary Unicode properties,
including Bidi_Control.

* A number of changes to script matching for \p and \P:

(a) Script extensions for a character are now coded as a bitmap instead of
a list of script numbers, which should be faster and does not need a
loop.

(b) Added the syntax \p{script:xxx} and \p{script_extensions:xxx} (synonyms
sc and scx).

(c) Changed \p{scriptname} from being the same as \p{sc:scriptname} to being
the same as \p{scx:scriptname} because this change happened in Perl at
release 5.26.

(d) The standard Unicode 4-letter abbreviations for script names are now
recognized.

(e) In accordance with Unicode and Perl's "loose matching" rules, spaces,
hyphens, and underscores are ignored in property names, which are then
matched independent of case.

As always, see ChangeLog for a list of all changes (also the Git log).


Version 10.39 29-October-2021
-----------------------------

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

pcre2 Windows build with Visual Studio.

This version is pcre2-10.39.
This version is pcre2-10.40.

To build, simply open the required solution file, and
you know how to use Visual Studio, right?
Expand Down
32 changes: 19 additions & 13 deletions README.pcre2
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,18 @@ Building PCRE2 using autotools
The following instructions assume the use of the widely used "configure; make;
make install" (autotools) process.

To build PCRE2 on system that supports autotools, first run the "configure"
command from the PCRE2 distribution directory, with your current directory set
If you have downloaded and unpacked a PCRE2 release tarball, run the
"configure" command from the PCRE2 directory, with your current directory set
to the directory where you want the files to be created. This command is a
standard GNU "autoconf" configuration script, for which generic instructions
are supplied in the file INSTALL.

The files in the GitHub repository do not contain "configure". If you have
downloaded the PCRE2 source files from GitHub, before you can run "configure"
you must run the shell script called autogen.sh. This runs a number of
autotools to create a "configure" script (you must of course have the autotools
commands installed in order to do this).

Most commonly, people build PCRE2 within its own distribution directory, and in
this case, on many systems, just running "./configure" is sufficient. However,
the usual methods of changing standard defaults are available. For example:
Expand Down Expand Up @@ -188,10 +194,10 @@ library. They are also documented in the pcre2build man page.

As well as supporting UTF strings, Unicode support includes support for the
\P, \p, and \X sequences that recognize Unicode character properties.
However, only the basic two-letter properties such as Lu are supported.
Escape sequences such as \d and \w in patterns do not by default make use of
Unicode properties, but can be made to do so by setting the PCRE2_UCP option
or starting a pattern with (*UCP).
However, only a subset of Unicode properties are supported; see the
pcre2pattern man page for details. Escape sequences such as \d and \w in
patterns do not by default make use of Unicode properties, but can be made to
do so by setting the PCRE2_UCP option or starting a pattern with (*UCP).

. You can build PCRE2 to recognize either CR or LF or the sequence CRLF, or any
of the preceding, or any of the Unicode newline sequences, or the NUL (zero)
Expand Down Expand Up @@ -411,7 +417,7 @@ The "configure" script builds the following files for the basic C library:
. Makefile the makefile that builds the library
. src/config.h build-time configuration options for the library
. src/pcre2.h the public PCRE2 header file
. pcre2-config script that shows the building settings such as CFLAGS
. pcre2-config script that shows the building settings such as CFLAGS
that were set for "configure"
. libpcre2-8.pc )
. libpcre2-16.pc ) data for the pkg-config command
Expand Down Expand Up @@ -571,9 +577,9 @@ at build time" for more details.
Making new tarballs
-------------------

The command "make dist" creates two PCRE2 tarballs, in tar.gz and zip formats.
The command "make distcheck" does the same, but then does a trial build of the
new distribution to ensure that it works.
The command "make dist" creates three PCRE2 tarballs, in tar.gz, tar.bz2, and
zip formats. The command "make distcheck" does the same, but then does a trial
build of the new distribution to ensure that it works.

If you have modified any of the man page sources in the doc directory, you
should first run the PrepareRelease script before making a distribution. This
Expand Down Expand Up @@ -602,13 +608,13 @@ is available. RunTest outputs a comment when it skips a test.

Many (but not all) of the tests that are not skipped are run twice if JIT
support is available. On the second run, JIT compilation is forced. This
testing can be suppressed by putting "nojit" on the RunTest command line.
testing can be suppressed by putting "-nojit" on the RunTest command line.

The entire set of tests is run once for each of the 8-bit, 16-bit and 32-bit
libraries that are enabled. If you want to run just one set of tests, call
RunTest with either the -8, -16 or -32 option.

If valgrind is installed, you can run the tests under it by putting "valgrind"
If valgrind is installed, you can run the tests under it by putting "-valgrind"
on the RunTest command line. To run pcre2test on just one or more specific test
files, give their numbers as arguments to RunTest, for example:

Expand Down Expand Up @@ -905,4 +911,4 @@ The distribution should contain the files listed below.
Philip Hazel
Email local part: Philip.Hazel
Email domain: gmail.com
Last updated: 29 October 2021
Last updated: 15 April 2022
File renamed without changes.
4 changes: 2 additions & 2 deletions distfiles/download.url
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.bz2
https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.bz2.sig
https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.bz2
https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.bz2.sig
Binary file removed distfiles/pcre2-10.39.tar.bz2
Binary file not shown.
Binary file removed distfiles/pcre2-10.39.tar.bz2.sig
Binary file not shown.
Binary file added distfiles/pcre2-10.40.tar.bz2
Binary file not shown.
Binary file added distfiles/pcre2-10.40.tar.bz2.sig
Binary file not shown.
4 changes: 2 additions & 2 deletions include/pcre2.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE.
/* The current PCRE version information. */

#define PCRE2_MAJOR 10
#define PCRE2_MINOR 39
#define PCRE2_MINOR 40
#define PCRE2_PRERELEASE
#define PCRE2_DATE 2021-10-29
#define PCRE2_DATE 2022-04-14

/* When an application links to a PCRE DLL in Windows, the symbols that are
imported have to be identified as such. When building PCRE2, the appropriate
Expand Down
Loading

0 comments on commit 39c1737

Please sign in to comment.