Skip to content

Commit 9a40804

Browse files
committed
Merge branch 'develop' into master-merge-2025-01-27
2 parents 4cbcd30 + 3593750 commit 9a40804

File tree

271 files changed

+6461
-29662
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

271 files changed

+6461
-29662
lines changed

.github/workflows/ci.yml

Lines changed: 105 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,21 @@ on:
99
branches:
1010
- master
1111
- develop
12+
- feature/**
1213
pull_request:
1314
release:
1415
types: [published, created, edited]
16+
17+
env:
18+
UBSAN_OPTIONS: print_stacktrace=1
19+
1520
jobs:
16-
ubuntu-focal:
17-
runs-on: ubuntu-20.04
21+
ubuntu-jammy:
22+
runs-on: ubuntu-22.04
1823
strategy:
1924
fail-fast: false
2025
matrix:
21-
compiler: [ g++-9, g++-10, clang++-9, clang++-10 ]
26+
compiler: [ g++-11, g++-12, g++-13 ]
2227
standard: [ c++11, c++14, c++17, c++2a ]
2328
steps:
2429
- uses: actions/checkout@v2
@@ -34,7 +39,7 @@ jobs:
3439
- name: Add repository
3540
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
3641
- name: Install packages
37-
run: sudo apt install g++-9 g++-10 clang-9 clang-10 libicu-dev
42+
run: sudo apt install g++-11 g++-12 g++-13
3843
- name: Checkout main boost
3944
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
4045
- name: Update tools/boostdep
@@ -55,14 +60,11 @@ jobs:
5560
- name: Generate user config
5661
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
5762
working-directory: ../boost-root
58-
- name: Config info install
59-
run: ../../../b2 config_info_travis_install toolset=$TOOLSET
60-
working-directory: ../boost-root/libs/config/test
6163
- name: Config info
62-
run: ./config_info_travis
64+
run: ../../../b2 print_config_info toolset=$TOOLSET
6365
working-directory: ../boost-root/libs/config/test
6466
- name: Test
65-
run: ../../../b2 toolset=$TOOLSET
67+
run: ../../../b2 toolset=$TOOLSET variant=debug,release ${{ startsWith(matrix.compiler, 'g++-13') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }}
6668
working-directory: ../boost-root/libs/regex/test
6769
ubuntu-jammy-standalone:
6870
runs-on: ubuntu-22.04
@@ -89,12 +91,12 @@ jobs:
8991
- name: Test
9092
run: ${{ matrix.compiler }} -std=${{ matrix.standard }} -I../../include *.cpp ../../src/*.cpp -o regress && ./regress
9193
working-directory: ./test/regress
92-
ubuntu-bionic:
93-
runs-on: ubuntu-18.04
94+
ubuntu-jammy-clang:
95+
runs-on: ubuntu-22.04
9496
strategy:
9597
fail-fast: false
9698
matrix:
97-
compiler: [ g++-7, g++-8, clang++-7, clang++-8 ]
99+
compiler: [ clang++-15 ]
98100
standard: [ c++11, c++14, c++17 ]
99101
steps:
100102
- uses: actions/checkout@v2
@@ -110,7 +112,7 @@ jobs:
110112
- name: Add repository
111113
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
112114
- name: Install packages
113-
run: sudo apt install g++-7 g++-8 clang-7 clang-8 libicu-dev
115+
run: sudo apt install clang-15
114116
- name: Checkout main boost
115117
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
116118
- name: Update tools/boostdep
@@ -131,15 +133,95 @@ jobs:
131133
- name: Generate user config
132134
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
133135
working-directory: ../boost-root
134-
- name: Config info install
135-
run: ../../../b2 config_info_travis_install toolset=$TOOLSET
136-
working-directory: ../boost-root/libs/config/test
137136
- name: Config info
138-
run: ./config_info_travis
137+
run: ../../../b2 print_config_info toolset=$TOOLSET
139138
working-directory: ../boost-root/libs/config/test
140139
- name: Test
141140
run: ../../../b2 toolset=$TOOLSET define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER
142141
working-directory: ../boost-root/libs/regex/test
142+
ubuntu-jammy-clang-18-modules:
143+
runs-on: ubuntu-22.04
144+
steps:
145+
- uses: actions/checkout@v2
146+
with:
147+
fetch-depth: '0'
148+
- uses: mstachniuk/ci-skip@v1
149+
with:
150+
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
151+
commit-filter-separator: ';'
152+
fail-fast: true
153+
- name: Grab install script
154+
run: wget https://apt.llvm.org/llvm.sh && chmod u+x llvm.sh
155+
- name: Install clang 18 packages
156+
run: sudo ./llvm.sh 18 && clang++-18 --version
157+
- name: Checkout main boost
158+
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
159+
- name: Update tools/boostdep
160+
run: git submodule update --init tools/boostdep
161+
working-directory: ../boost-root
162+
- name: Copy files
163+
run: cp -r $GITHUB_WORKSPACE/* libs/regex
164+
working-directory: ../boost-root
165+
- name: Install deps
166+
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
167+
working-directory: ../boost-root
168+
- name: Bootstrap
169+
run: ./bootstrap.sh
170+
working-directory: ../boost-root
171+
- name: Generate headers
172+
run: ./b2 headers
173+
working-directory: ../boost-root
174+
- name: Test
175+
run: CXX=clang++-18 LIBRARIES="-licuuc -licudata -licui18n" ./test_clang.sh
176+
working-directory: ../boost-root/libs/regex/test/module
177+
ubuntu-noble-clang:
178+
runs-on: ubuntu-24.04
179+
strategy:
180+
fail-fast: false
181+
matrix:
182+
compiler: [ clang++-16, clang++-17, clang++-18 ]
183+
standard: [ c++11, c++14, c++17, c++20 ]
184+
steps:
185+
- uses: actions/checkout@v2
186+
with:
187+
fetch-depth: '0'
188+
- uses: mstachniuk/ci-skip@v1
189+
with:
190+
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
191+
commit-filter-separator: ';'
192+
fail-fast: true
193+
- name: Set TOOLSET
194+
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
195+
- name: Add repository
196+
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
197+
- name: Install packages
198+
run: sudo apt install clang-16 clang-17 clang-18
199+
- name: Checkout main boost
200+
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
201+
- name: Update tools/boostdep
202+
run: git submodule update --init tools/boostdep
203+
working-directory: ../boost-root
204+
- name: Copy files
205+
run: cp -r $GITHUB_WORKSPACE/* libs/regex
206+
working-directory: ../boost-root
207+
- name: Install deps
208+
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
209+
working-directory: ../boost-root
210+
- name: Bootstrap
211+
run: ./bootstrap.sh
212+
working-directory: ../boost-root
213+
- name: Generate headers
214+
run: ./b2 headers
215+
working-directory: ../boost-root
216+
- name: Generate user config
217+
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
218+
working-directory: ../boost-root
219+
- name: Config info
220+
run: ../../../b2 print_config_info toolset=$TOOLSET
221+
working-directory: ../boost-root/libs/config/test
222+
- name: Test
223+
run: ../../../b2 toolset=$TOOLSET define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER variant=debug,release ${{ startsWith(matrix.compiler, 'clang++-18') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }}
224+
working-directory: ../boost-root/libs/regex/test
143225
macos:
144226
runs-on: macos-latest
145227
strategy:
@@ -344,6 +426,9 @@ jobs:
344426
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
345427
commit-filter-separator: ';'
346428
fail-fast: true
429+
- uses: TheMrMilchmann/setup-msvc-dev@v3
430+
with:
431+
arch: x64
347432
- name: Checkout main boost
348433
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
349434
- name: Update tools/boostdep
@@ -370,6 +455,9 @@ jobs:
370455
- name: Test
371456
run: ..\..\..\b2 --hash %ARGS%
372457
working-directory: ../boost-root/libs/regex/test
458+
- name: Module Test
459+
run: msvc_test.bat
460+
working-directory: ../boost-root/libs/regex/test/module
373461
ubuntu-cmake-install:
374462
runs-on: ubuntu-20.04
375463
strategy:

build.jam

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Copyright René Ferdinand Rivera Morell 2023-2024
2+
# Distributed under the Boost Software License, Version 1.0.
3+
# (See accompanying file LICENSE_1_0.txt or copy at
4+
# http://www.boost.org/LICENSE_1_0.txt)
5+
6+
require-b2 5.2 ;
7+
8+
constant boost_dependencies :
9+
/boost/assert//boost_assert
10+
/boost/concept_check//boost_concept_check
11+
/boost/config//boost_config
12+
/boost/predef//boost_predef
13+
/boost/static_assert//boost_static_assert
14+
/boost/throw_exception//boost_throw_exception
15+
/boost/type_traits//boost_type_traits ;
16+
17+
project /boost/regex
18+
: common-requirements
19+
<include>include
20+
;
21+
22+
explicit
23+
[ alias boost_regex : build//boost_regex ]
24+
[ alias all : boost_regex example test ]
25+
;
26+
27+
call-if : boost-library regex
28+
: install boost_regex
29+
;
30+

build/Jamfile.v2

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
11
# copyright John Maddock 2003
2-
# Distributed under the Boost Software License, Version 1.0.
3-
# (See accompanying file LICENSE_1_0.txt or copy at
2+
# Distributed under the Boost Software License, Version 1.0.
3+
# (See accompanying file LICENSE_1_0.txt or copy at
44
# http://www.boost.org/LICENSE_1_0.txt.
55

66
import modules ;
77
import testing ;
88
import errors ;
99

10-
project : requirements
11-
# default to all warnings on:
12-
<warnings>all
10+
constant boost_dependencies_private :
11+
/boost/core//boost_core
12+
;
13+
14+
project
15+
: default-build <warnings>all
16+
: common-requirements <library>$(boost_dependencies)
17+
: requirements <library>$(boost_dependencies_private)
1318
;
1419

1520
local disable-icu = [ MATCH (--disable-icu) : [ modules.peek : ARGV ] ] ;
1621

1722
rule path_options ( properties * )
1823
{
1924
local result ;
20-
if <address-model>64 in $(properties) && <toolset>msvc in $(properties)
25+
if <address-model>64 in $(properties) && <toolset>msvc in $(properties)
2126
{
22-
result = <search>$(ICU_PATH)/bin64 <search>$(ICU_PATH)/lib64 ;
27+
result = <search>$(ICU_PATH)/bin64 <search>$(ICU_PATH)/lib64 ;
2328
}
2429
else
2530
{
26-
result = <search>$(ICU_PATH)/bin <search>$(ICU_PATH)/lib ;
31+
result = <search>$(ICU_PATH)/bin <search>$(ICU_PATH)/lib ;
2732
}
2833
return $(result) ;
2934
}
@@ -34,24 +39,24 @@ rule path_options ( properties * )
3439
if ! $(disable-icu)
3540
{
3641
if [ modules.peek : ICU_LINK ]
37-
{
42+
{
3843
errors.user-error : "The ICU_LINK option is no longer supported by the Boost.Regex build - please refer to the documentation for equivalent options" ;
3944
}
4045

4146
if [ modules.peek : ICU_PATH ]
42-
{
47+
{
4348
ICU_PATH = [ modules.peek : ICU_PATH ] ;
4449
}
4550
if [ modules.peek : ICU_ICUUC_NAME ]
46-
{
51+
{
4752
ICU_ICUUC_NAME = [ modules.peek : ICU_ICUUC_NAME ] ;
4853
}
4954
if [ modules.peek : ICU_ICUDT_NAME ]
50-
{
55+
{
5156
ICU_ICUDT_NAME = [ modules.peek : ICU_ICUDT_NAME ] ;
5257
}
5358
if [ modules.peek : ICU_ICUIN_NAME ]
54-
{
59+
{
5560
ICU_ICUIN_NAME = [ modules.peek : ICU_ICUIN_NAME ] ;
5661
}
5762

@@ -102,16 +107,16 @@ if ! $(disable-icu)
102107
lib icuin : : <name>this_is_an_invalid_library_name ;
103108
}
104109

105-
ICU_OPTS =
106-
<include>$(ICU_PATH)/include
110+
ICU_OPTS =
111+
<include>$(ICU_PATH)/include
107112
<runtime-link>shared:<library>icuuc/<link>shared
108113
<runtime-link>shared:<library>icudt/<link>shared
109114
<runtime-link>shared:<library>icuin/<link>shared
110115
<runtime-link>static:<library>icuuc
111116
<runtime-link>static:<library>icudt
112117
<runtime-link>static:<library>icuin
113118
<target-os>windows,<toolset>clang:<linkflags>"advapi32.lib"
114-
<define>BOOST_HAS_ICU=1
119+
<define>BOOST_HAS_ICU=1
115120
<runtime-link>static:<define>U_STATIC_IMPLEMENTATION=1
116121
;
117122

@@ -142,24 +147,17 @@ if ! $(disable-icu)
142147
exe has_icu : has_icu_test.cpp : $(ICU_OPTS) ;
143148
explicit has_icu ;
144149

145-
obj is_legacy_03 : is_legacy_03.cpp ;
146-
explicit is_legacy_03 ;
147-
148150
alias icu_options : : : : [ check-target-builds has_icu : $(ICU_OPTS) : ] ;
149151

150-
SOURCES =
152+
SOURCES =
151153
posix_api.cpp
152-
regex.cpp
153-
regex_debug.cpp
154-
static_mutex.cpp
155154
wide_posix_api.cpp
156155
;
157156

158157
lib boost_regex : ../src/$(SOURCES) icu_options
159-
:
160-
<link>shared:<define>BOOST_REGEX_DYN_LINK=1
161-
<toolset>gcc-cygwin:<link>static
158+
:
159+
<link>shared:<define>BOOST_REGEX_DYN_LINK=1
160+
<toolset>gcc-cygwin:<link>static
161+
: :
162+
<define>BOOST_REGEX_NO_LIB=1
162163
;
163-
164-
boost-install boost_regex ;
165-

build/is_legacy_03.cpp

Lines changed: 0 additions & 16 deletions
This file was deleted.

doc/headers.qbk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
There are two main headers used by this library: `<boost/regex.hpp>`
1212
provides full access to the main template library, while `<boost/cregex.hpp>`
13-
provides access to the (deprecated) high level class RegEx, and the
14-
POSIX API functions.
13+
provides access to the POSIX API functions.
1514

1615
There is also a header containing only forward declarations
1716
`<boost/regex_fwd.hpp>` for use when an interface is dependent upon

doc/history.qbk

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ Currently open issues can be viewed [@https://github.com/boostorg/regex/issues?q
1414

1515
All issues including closed ones can be viewed [@https://github.com/boostorg/regex/issues?q=is%3Aissue+is%3Aclosed here].
1616

17+
[h4 Boost.Regex-8.0.0 (Boost-1.86.0)]
18+
19+
* BREAKING CHANGE: deprecated C++03 support has now been removed.
20+
* Fixed some low-impact security issues: [@https://github.com/boostorg/regex/pull/204 204].
21+
1722
[h4 Boost.Regex-7.0.1 (boost-1.79.0)]
1823

1924
* Minor fix for setting building with -DBOOST_REGEX_MAX_CACHE_BLOCKS=0 and `<atomic>` present.

0 commit comments

Comments
 (0)