Opened 4 weeks ago

Closed 2 weeks ago

#5813 closed enhancement (fixed)

pcre2-10.47

Reported by: Bruce Dubbs Owned by: lfs-book
Priority: normal Milestone: 12.5
Component: Book Version: git
Severity: normal Keywords:
Cc:

Description

New minor version,

Change History (2)

comment:1 by Bruce Dubbs, 2 weeks ago

Version 10.47 21-October-2025

1. Expanded platforms tested by CI: FreeBSD, OpenBSD,
   Solaris, MSYS (Cygwin), S390x, PPC64le, ARMv7, AARCH64, RiscV.

2. Made build clean of `/W3` warnings on MSVC. Further suppression of
   minor build warnings on other platforms.

3. Added `--enable-Werror` flag to `./configure` to treat warnings as
   errors (or `--enable-errwarn` for Solaris cc). Previously, you had to hackily
   override the CPPFLAGS when calling make since you can't pass `-Werror` as a
   CFLAG into `./configure` (it breaks compiler feature detection).

4. Added AM_MAINTAINER_MODE for Git tag releases. Users building with
   the `./configure` script can check out the release tag using Git, which assigns
   the current time as the modification time to each checked-out file. This caused
   Autoconf to attempt to regenerate the configure script.

5. Add LICENSE file for sljit to the tarball release, to clarify that the
   sljit code is governed separately by the 2-clause BSD license.

6. Add full support for z/OS and native EBCDIC support. The z/OS
   support is tested nightly using the XLC and IBM-Clang compilers, with Autoconf
   and CMake. In addition, for test purposes, the EBCDIC support can now be enabled
   on any platform using the new Autoconf `--enable-ebcdic-ignoring-compiler` and
   CMake `-DPCRE2_EBCDIC_IGNORING_COMPILER` options.

7. Faster lookup of named capture groups during pattern compilation using
   a hash table.

8. Improvements to pcre2test to increase code coverage:
   -malloc argument; more detailed test assertions.

9. Powerful new feature: pattern recursion of
   the form "(?1(GROUP_NAME_OR_NUM,...))" acts as a subroutine call which
   additionally returns the listed capturing groups to the calling context.

10. Add linker scripts to enable symbol versioning for the PCRE2 dynamic
    libraries. Downstream Linux distributions may make use of this, or disable it
    with the new Autoconf `--disable-symvers` and CMake `-DPCRE2_SYMVERS` options.
    Currently, Linux, Solaris, and FreeBSD (GNU ld, LLVM lld, and Solaris ld) are
    tested and supported.

11. New API function: pcre2_next_match(). This function makes it both
    simpler and safer for clients to iterate over all matches in a subject. The
    documentation in `pcre2api` also provides improved guidance in the section
    "Iterating over all matches".

12. Modernize the CMake build files, to use standard
    commands to export the PCRE2 targets. This makes use of the
    "$<BUILD_INTERFACE:...>" and "$<INSTALL_INTERFACE:...>" expressions alongside
    the built-in "install(EXPORT...)" command. This brings the CMake files in line
    with the patches used by vcpkg to distribute PCRE2. The minimum CMake version
    remains 3.15.

13. Improved error offsets and diagnostics for syntax errors during
    pattern compilation.

14. Various updates to Bazel and Zig build support.

15. Added PCRE2_CONFIG_EFFECTIVE_LINKSIZE option to pcre2_config(), to
    report the actual number of code units used in compiled patterns for recording
    string lengths and offsets.

16. Significant bugfix: Fix a crash in pcre2_callout_enumerate() which is
    easily reachable on any pattern that contains a Unicode character class. If your
    application uses this function, please read the details for this change and
    evaluate its severity for your application.

17. Improved input validation for pcre2_substitute() used with
    PCRE2_SUBSTITUTE_MATCHED.

18. Add support for $+ replacement to pcre2_substitute().

19. New SIMD code generation in the JIT for AArch64.

comment:2 by Bruce Dubbs, 2 weeks ago

Resolution: fixed
Status: newclosed

Fixed at commit f8ab28e0f8.

Note: See TracTickets for help on using tickets.