Compare commits

..

58 Commits

Author SHA1 Message Date
Peter Dimov 4c214cd1d0 Install boost_regex in build.jam for the CMake configuration files 2026-05-04 18:11:59 +03:00
Peter Dimov 84a8576609 Remove uses of mstachniuk/ci-skip@v1; no longer needed since https://github.blog/changelog/2021-02-08-github-actions-skip-pull-request-and-push-workflows-with-skip-ci/ 2026-05-04 18:10:40 +03:00
Peter Dimov b9cbbcfa75 Update actions/checkout@v2 to @v6 in ci.yml 2026-05-04 18:08:53 +03:00
Peter Dimov 62f0e29315 Add cmake-use jobs to ci.yml 2026-05-04 16:25:10 +03:00
Peter Dimov a00971274c Merge pull request #269 from Lastique/feature/remove_static_assert
Remove dependencies on Boost.StaticAssert
2026-04-25 19:18:56 +03:00
jzmaddock 47d418e3f0 Add permissions to CI script. 2026-03-06 13:40:14 +00:00
jzmaddock 76870bae43 Try updating paths. 2026-02-25 12:04:30 +00:00
jzmaddock 91bd2e8473 Test out code coverage script. 2026-02-25 11:35:20 +00:00
Andrey Semashev 5a49d4f15a Remove dependencies on Boost.StaticAssert.
Boost.StaticAssert has been merged into Boost.Config, so remove
the dependency.
2026-01-22 20:08:27 +03:00
jzmaddock ed6ebbd5a5 Merge pull request #256 from boostorg/build_adjust
Adjust build.jam to make regex header only.
2025-07-04 20:20:22 +01:00
jzmaddock d8cc5dbbbe Remove CI runners that are no longer supported.
Adjust library paths.
2025-07-04 19:07:09 +01:00
jzmaddock 60f5c1b958 Adjust build.jam to make regex header only.
While still installing the binary for those few that need it.
2025-07-04 17:58:12 +01:00
jzmaddock f851a08050 Merge pull request #246 from cmazakas/cve-42512790
fix integer overflow when parsing Perl-extended named backrefs
2025-03-04 19:27:22 +00:00
Christian Mazakas f0ae2d8f57 fix integer overflow when parsing Perl-extended named backrefs 2025-03-03 10:51:42 -08:00
jzmaddock 34b1c2f615 Merge pull request #245 from cmazakas/cve-42506269
fix cve issue 42506269
2025-02-28 12:58:02 +00:00
Christian Mazakas 187be72eb8 fix cve issue 42506269 2025-02-20 14:53:42 -08:00
jzmaddock 0b64ecef6c Merge pull request #242 from boostorg/master-merge-2025-01-27
Master merge 2025 01 27
2025-01-28 09:27:11 +00:00
John Maddock 9a408042d7 Merge branch 'develop' into master-merge-2025-01-27 2025-01-27 17:23:19 +00:00
jzmaddock 35937503ca Merge pull request #238 from cmazakas/feature/sanitizers
CI Sanitizers
2024-12-31 10:57:26 +00:00
jzmaddock 31f98f2cf6 Merge pull request #239 from cmazakas/feature/overflow-fix
fix overflow bug when attempting to access match results
2024-12-21 09:44:24 +00:00
Christian Mazakas 093e135925 fix overflow bug when attempting to access match results 2024-12-20 11:19:08 -08:00
Christian Mazakas 4f4c729547 use manual pointer arithmetic to avoid invalid pointer cast 2024-12-19 08:46:56 -08:00
Christian Mazakas a40c96df3a fix negation operator creating an enum with an invalid value 2024-12-19 08:43:53 -08:00
Christian Mazakas 85ffdd9636 update ci to include ubsan and asan 2024-12-19 08:38:49 -08:00
jzmaddock 7af2aadcb8 Add module support and tests. (#174) 2024-12-18 19:14:23 +00:00
John Maddock 4cbcd3078e Merge branch 'develop' 2023-02-22 18:58:30 +00:00
John Maddock a851f2141f Merge branch 'develop' 2022-06-27 18:36:04 +01:00
John Maddock 57aca85a8e Merge branch 'develop' 2022-06-26 18:56:14 +01:00
John Maddock 177ee2cc0f Merge branch 'develop' 2022-03-08 11:34:00 +00:00
John Maddock 63575ddad8 Merge branch 'develop' 2022-03-08 11:32:34 +00:00
John Maddock e1c8a4b6a4 Merge branch 'develop' 2021-11-15 12:45:47 +00:00
John Maddock 9b946cfcb7 Merge branch 'develop' 2021-11-01 13:19:01 +01:00
John Maddock 86f82635d4 Merge branch 'develop' 2021-07-03 10:17:35 +01:00
John Maddock 0c8158f6ce Merge branch 'develop' 2021-06-25 19:19:28 +01:00
jzmaddock a3f97b5bec Merge pull request #126 from boostorg/header_fix
Add missing #include  for release.
2021-04-12 08:21:42 +01:00
John Maddock 13a13e58c9 Merge branch 'develop' into header_fix 2021-04-11 18:14:48 +01:00
John Maddock 714eaf8ae9 Merge branch 'develop' 2021-03-07 09:51:58 +00:00
jzmaddock 78e73e29ec Merge branch 'develop'
Fixed Conflicts:
	doc/html/index.html
2021-02-25 19:27:04 +00:00
jzmaddock 39f28ac456 Fix incorrect references to sub_match having a .last member.
Fixes https://github.com/boostorg/regex/issues/115.

# Fixed Conflicts:
#	doc/html/index.html
2020-11-23 18:12:18 +00:00
John Maddock e9645776f9 Merge branch 'develop' 2020-06-23 18:57:40 +01:00
jzmaddock ea23777b48 Merge branch 'develop' 2020-04-28 17:41:58 +01:00
jzmaddock c21b52d87c Merge branch 'develop'
# Conflicts:
#	doc/html/boost_regex/background.html
#	doc/html/boost_regex/background/acknowledgements.html
#	doc/html/boost_regex/background/examples.html
#	doc/html/boost_regex/background/faq.html
#	doc/html/boost_regex/background/futher.html
#	doc/html/boost_regex/background/headers.html
#	doc/html/boost_regex/background/history.html
#	doc/html/boost_regex/background/locale.html
#	doc/html/boost_regex/background/performance.html
#	doc/html/boost_regex/background/performance/section_id1378460593.html
#	doc/html/boost_regex/background/performance/section_id1675827111.html
#	doc/html/boost_regex/background/performance/section_id3141719723.html
#	doc/html/boost_regex/background/performance/section_id3258595385.html
#	doc/html/boost_regex/background/performance/section_id3261825021.html
#	doc/html/boost_regex/background/performance/section_id3752650613.html
#	doc/html/boost_regex/background/performance/section_id4128344975.html
#	doc/html/boost_regex/background/performance/section_id4148872883.html
#	doc/html/boost_regex/background/redist.html
#	doc/html/boost_regex/background/standards.html
#	doc/html/boost_regex/background/thread_safety.html
#	doc/html/boost_regex/captures.html
#	doc/html/boost_regex/configuration.html
#	doc/html/boost_regex/configuration/algorithm.html
#	doc/html/boost_regex/configuration/compiler.html
#	doc/html/boost_regex/configuration/linkage.html
#	doc/html/boost_regex/configuration/locale.html
#	doc/html/boost_regex/configuration/tuning.html
#	doc/html/boost_regex/format.html
#	doc/html/boost_regex/format/boost_format_syntax.html
#	doc/html/boost_regex/format/perl_format.html
#	doc/html/boost_regex/format/sed_format.html
#	doc/html/boost_regex/install.html
#	doc/html/boost_regex/intro.html
#	doc/html/boost_regex/partial_matches.html
#	doc/html/boost_regex/ref.html
#	doc/html/boost_regex/ref/bad_expression.html
#	doc/html/boost_regex/ref/basic_regex.html
#	doc/html/boost_regex/ref/concepts.html
#	doc/html/boost_regex/ref/concepts/charT_concept.html
#	doc/html/boost_regex/ref/concepts/iterator_concepts.html
#	doc/html/boost_regex/ref/concepts/traits_concept.html
#	doc/html/boost_regex/ref/deprecated.html
#	doc/html/boost_regex/ref/deprecated/old_regex.html
#	doc/html/boost_regex/ref/deprecated/regex_format.html
#	doc/html/boost_regex/ref/deprecated/regex_grep.html
#	doc/html/boost_regex/ref/deprecated/regex_split.html
#	doc/html/boost_regex/ref/error_type.html
#	doc/html/boost_regex/ref/internals.html
#	doc/html/boost_regex/ref/internals/uni_iter.html
#	doc/html/boost_regex/ref/match_flag_type.html
#	doc/html/boost_regex/ref/match_results.html
#	doc/html/boost_regex/ref/non_std_strings.html
#	doc/html/boost_regex/ref/non_std_strings/icu.html
#	doc/html/boost_regex/ref/non_std_strings/icu/intro.html
#	doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
#	doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
#	doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
#	doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
#	doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
#	doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
#	doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
#	doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
#	doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
#	doc/html/boost_regex/ref/posix.html
#	doc/html/boost_regex/ref/regex_iterator.html
#	doc/html/boost_regex/ref/regex_match.html
#	doc/html/boost_regex/ref/regex_replace.html
#	doc/html/boost_regex/ref/regex_search.html
#	doc/html/boost_regex/ref/regex_token_iterator.html
#	doc/html/boost_regex/ref/regex_traits.html
#	doc/html/boost_regex/ref/sub_match.html
#	doc/html/boost_regex/ref/syntax_option_type.html
#	doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
#	doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
#	doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
#	doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
#	doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
#	doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
#	doc/html/boost_regex/syntax.html
#	doc/html/boost_regex/syntax/basic_extended.html
#	doc/html/boost_regex/syntax/basic_syntax.html
#	doc/html/boost_regex/syntax/character_classes.html
#	doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
#	doc/html/boost_regex/syntax/character_classes/std_char_classes.html
#	doc/html/boost_regex/syntax/collating_names.html
#	doc/html/boost_regex/syntax/collating_names/digraphs.html
#	doc/html/boost_regex/syntax/collating_names/named_unicode.html
#	doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
#	doc/html/boost_regex/syntax/leftmost_longest_rule.html
#	doc/html/boost_regex/syntax/perl_syntax.html
#	doc/html/boost_regex/unicode.html
#	doc/html/index.html
2019-10-31 17:47:34 +00:00
jzmaddock 18e7b8c463 Merge branch 'develop' 2019-02-24 09:17:34 +00:00
jzmaddock 866d546fd0 Merge branch 'develop' 2018-10-22 19:07:00 +01:00
jzmaddock 309eee3459 doc regen. 2018-09-15 09:00:20 +01:00
jzmaddock c653a0bf05 Merge branch 'develop' 2018-09-15 08:59:28 +01:00
jzmaddock a9fc8fb5de Merge pull request #50 from boostorg/develop
Merge Fuzz-bug fixes from develop
2017-11-24 17:25:41 +00:00
jzmaddock b3f73b4792 Merge pull request #48 from boostorg/develop
Merge de-fuzz fixes from develop.
2017-10-29 17:03:03 +00:00
jzmaddock 5bc2a4a301 Merge pull request #39 from boostorg/develop
Merge develop to master
2017-10-09 18:27:25 +01:00
jzmaddock 8191d58266 Remove corpus files from master - we don't need them here! 2017-03-03 09:18:29 +00:00
jzmaddock f0b577a82c Merge branch 'develop' 2017-03-02 18:33:14 +00:00
jzmaddock ed556985d7 Merge branch 'develop' 2016-11-03 20:05:53 +01:00
Rene Rivera bf7d64a7ef Add, and update, documentation build targets. 2016-10-10 11:39:53 -05:00
jzmaddock 6f02c1a388 Merge branch 'develop' 2016-08-22 12:50:59 +01:00
jzmaddock dec7b5028d Merge branch 'develop' 2016-08-10 18:34:37 +01:00
jzmaddock dd20ac2669 Merge branch 'develop'
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2016-04-01 18:35:47 +01:00
jzmaddock d84bab7c4d Merge branch 'develop' 2016-02-15 19:32:53 +00:00
jzmaddock 9034bd9c02 Merge branch 'develop' 2015-10-20 13:43:25 +01:00
3871 changed files with 441 additions and 6887 deletions
+168 -143
View File
@@ -10,9 +10,14 @@ on:
- master
- develop
- feature/**
- cve-*
pull_request:
release:
types: [published, created, edited]
env:
UBSAN_OPTIONS: print_stacktrace=1
jobs:
ubuntu-jammy:
runs-on: ubuntu-22.04
@@ -22,14 +27,9 @@ jobs:
compiler: [ g++-11, g++-12, g++-13 ]
standard: [ c++11, c++14, c++17, c++2a ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
commit-filter-separator: ';'
fail-fast: true
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- name: Add repository
@@ -60,7 +60,7 @@ jobs:
run: ../../../b2 print_config_info toolset=$TOOLSET
working-directory: ../boost-root/libs/config/test
- name: Test
run: ../../../b2 toolset=$TOOLSET
run: ../../../b2 toolset=$TOOLSET variant=debug,release ${{ startsWith(matrix.compiler, 'g++-13') && 'address-sanitizer=norecover undefined-sanitizer=norecover' || '' }}
working-directory: ../boost-root/libs/regex/test
ubuntu-jammy-standalone:
runs-on: ubuntu-22.04
@@ -70,14 +70,9 @@ jobs:
compiler: [ g++ ]
standard: [ c++11, c++14, c++17, c++2a ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
commit-filter-separator: ';'
fail-fast: true
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- name: Add repository
@@ -95,14 +90,9 @@ jobs:
compiler: [ clang++-15 ]
standard: [ c++11, c++14, c++17 ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
commit-filter-separator: ';'
fail-fast: true
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- name: Add repository
@@ -138,14 +128,9 @@ jobs:
ubuntu-jammy-clang-18-modules:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
commit-filter-separator: ';'
fail-fast: true
- name: Grab install script
run: wget https://apt.llvm.org/llvm.sh && chmod u+x llvm.sh
- name: Install clang 18 packages
@@ -170,6 +155,49 @@ jobs:
- name: Test
run: CXX=clang++-18 LIBRARIES="-licuuc -licudata -licui18n" ./test_clang.sh
working-directory: ../boost-root/libs/regex/test/module
ubuntu-noble-clang:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
compiler: [ clang++-16, clang++-17, clang++-18 ]
standard: [ c++11, c++14, c++17, c++20 ]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- name: Add repository
run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
run: sudo apt install clang-16 clang-17 clang-18
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
run: git submodule update --init tools/boostdep
working-directory: ../boost-root
- name: Copy files
run: cp -r $GITHUB_WORKSPACE/* libs/regex
working-directory: ../boost-root
- name: Install deps
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
working-directory: ../boost-root
- name: Bootstrap
run: ./bootstrap.sh
working-directory: ../boost-root
- name: Generate headers
run: ./b2 headers
working-directory: ../boost-root
- name: Generate user config
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} : <cxxflags>-std=${{ matrix.standard }} ;" > ~/user-config.jam'
working-directory: ../boost-root
- name: Config info
run: ../../../b2 print_config_info toolset=$TOOLSET
working-directory: ../boost-root/libs/config/test
- name: Test
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' || '' }}
working-directory: ../boost-root/libs/regex/test
macos:
runs-on: macos-latest
strategy:
@@ -178,14 +206,9 @@ jobs:
toolset: [ clang ]
standard: [ 11, 14, 17, 2a ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[linux];[Linux];[LINUX]'
commit-filter-separator: ';'
fail-fast: true
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
@@ -213,7 +236,7 @@ jobs:
run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=${{ matrix.standard }}
working-directory: ../boost-root/libs/regex/test
windows_gcc:
runs-on: windows-2019
runs-on: windows-latest
defaults:
run:
shell: cmd
@@ -225,108 +248,9 @@ jobs:
toolset: [ gcc ]
standard: [ 11, 14, 17, 2a ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
commit-filter-separator: ';'
fail-fast: true
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
run: git submodule update --init tools/boostdep
working-directory: ../boost-root
- name: Copy files
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex
working-directory: ../boost-root
- name: Install deps
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
working-directory: ../boost-root
- name: Bootstrap
run: bootstrap
working-directory: ../boost-root
- name: Generate headers
run: b2 headers
working-directory: ../boost-root
- name: Config info install
run: ..\..\..\b2 config_info_travis_install %ARGS%
working-directory: ../boost-root/libs/config/test
- name: Config info
run: config_info_travis
working-directory: ../boost-root/libs/config/test
- name: Test
run: ..\..\..\b2 --hash %ARGS%
working-directory: ../boost-root/libs/regex/test
windows_msvc_14_0:
runs-on: windows-2019
defaults:
run:
shell: cmd
env:
ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }}
strategy:
fail-fast: false
matrix:
toolset: [ msvc-14.0 ]
standard: [ 14, 17 ]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
commit-filter-separator: ';'
fail-fast: true
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
run: git submodule update --init tools/boostdep
working-directory: ../boost-root
- name: Copy files
run: xcopy /s /e /q %GITHUB_WORKSPACE% libs\regex
working-directory: ../boost-root
- name: Install deps
run: python tools/boostdep/depinst/depinst.py -I example -g "--jobs 3" regex
working-directory: ../boost-root
- name: Bootstrap
run: bootstrap
working-directory: ../boost-root
- name: Generate headers
run: b2 headers
working-directory: ../boost-root
- name: Config info install
run: ..\..\..\b2 config_info_travis_install %ARGS%
working-directory: ../boost-root/libs/config/test
- name: Config info
run: config_info_travis
working-directory: ../boost-root/libs/config/test
- name: Test
run: ..\..\..\b2 --hash %ARGS%
working-directory: ../boost-root/libs/regex/test
windows_msvc_14_2:
runs-on: windows-2019
defaults:
run:
shell: cmd
env:
ARGS: toolset=${{ matrix.toolset }} address-model=64 cxxstd=${{ matrix.standard }}
strategy:
fail-fast: false
matrix:
toolset: [ msvc-14.2 ]
standard: [ 14, 17, latest ]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
commit-filter-separator: ';'
fail-fast: true
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
@@ -354,7 +278,7 @@ jobs:
run: ..\..\..\b2 --hash %ARGS%
working-directory: ../boost-root/libs/regex/test
windows_msvc_14_3:
runs-on: windows-2022
runs-on: windows-2025
defaults:
run:
shell: cmd
@@ -366,14 +290,9 @@ jobs:
toolset: [ msvc-14.3 ]
standard: [ 14, 17, 20, latest ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
with:
commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[apple];[Apple];[APPLE];[linux];[Linux];[LINUX]'
commit-filter-separator: ';'
fail-fast: true
- uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: x64
@@ -407,11 +326,11 @@ jobs:
run: msvc_test.bat
working-directory: ../boost-root/libs/regex/test/module
ubuntu-cmake-install:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- name: Checkout main boost
@@ -439,11 +358,11 @@ jobs:
cmake --build .
cmake --build . --target check
ubuntu-cmake-check:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: '0'
- name: Install packages
@@ -483,3 +402,109 @@ jobs:
cmake -DBOOST_REGEX_STANDALONE=on ..
cmake --build .
cmake --build . --target check
posix-cmake-use:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
- os: macos-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v6
- name: Install packages
if: matrix.install
run: sudo apt-get -y install ${{matrix.install}}
- name: Setup Boost
run: |
echo GITHUB_REPOSITORY: $GITHUB_REPOSITORY
LIBRARY=${GITHUB_REPOSITORY#*/}
echo LIBRARY: $LIBRARY
echo "LIBRARY=$LIBRARY" >> $GITHUB_ENV
echo GITHUB_BASE_REF: $GITHUB_BASE_REF
echo GITHUB_REF: $GITHUB_REF
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
REF=${REF#refs/heads/}
echo REF: $REF
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
echo BOOST_BRANCH: $BOOST_BRANCH
cd ..
git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
cp -r $GITHUB_WORKSPACE/* libs/$LIBRARY
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" $LIBRARY
./bootstrap.sh
./b2 -d0 headers
- name: Install Boost --with-library
run: |
cd ../boost-root
./b2 -j3 --with-$LIBRARY --prefix=$HOME/.local install
- name: Use the installed library
run: |
cd ../boost-root/libs/$LIBRARY/test/cmake_install_test && mkdir __build__ && cd __build__
cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
cmake --build .
ctest --output-on-failure --no-tests=error
windows-cmake-use:
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v6
- name: Setup Boost
shell: cmd
run: |
echo GITHUB_REPOSITORY: %GITHUB_REPOSITORY%
for /f %%i in ("%GITHUB_REPOSITORY%") do set LIBRARY=%%~nxi
echo LIBRARY: %LIBRARY%
echo LIBRARY=%LIBRARY%>>%GITHUB_ENV%
echo GITHUB_BASE_REF: %GITHUB_BASE_REF%
echo GITHUB_REF: %GITHUB_REF%
if "%GITHUB_BASE_REF%" == "" set GITHUB_BASE_REF=%GITHUB_REF%
set BOOST_BRANCH=develop
for /f %%i in ("%GITHUB_BASE_REF%") do if "%%~nxi" == "master" set BOOST_BRANCH=master
echo BOOST_BRANCH: %BOOST_BRANCH%
cd ..
git clone -b %BOOST_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
cd boost-root
xcopy /s /e /q %GITHUB_WORKSPACE% libs\%LIBRARY%\
git submodule update --init tools/boostdep
python tools/boostdep/depinst/depinst.py --git_args "--jobs 3" %LIBRARY%
cmd /c bootstrap
b2 -d0 headers
- name: Install Boost --with-library
shell: cmd
run: |
cd ../boost-root
b2 -j3 --with-%LIBRARY% install
- name: Use the installed library (Debug)
shell: cmd
run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test && mkdir __build__ && cd __build__
cmake -DBoost_ROOT=C:/Boost ..
cmake --build . --config Debug
ctest --output-on-failure --no-tests=error -C Debug
- name: Use the installed library (Release)
shell: cmd
run: |
cd ../boost-root/libs/%LIBRARY%/test/cmake_install_test/__build__
cmake --build . --config Release
ctest --output-on-failure --no-tests=error -C Release
+133
View File
@@ -0,0 +1,133 @@
#
# Copyright (c) 2026 Sam Darwin
# Copyright (c) 2026 Alexander Grund
#
# Distributed under the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Instructions
#
# After running this workflow successfully, go to https://github.com/ORGANIZATION/REPO/settings/pages
# and enable github pages on the code-coverage branch.
# The pages will be hosted at https://ORGANIZATION.github.io/REPO
#
name: Code Coverage
permissions:
contents:
write
on:
push:
branches:
- master
- develop
paths:
- 'src/**'
- 'include/**'
- 'build/**'
- '.github/workflows/code-coverage.yml'
workflow_dispatch:
concurrency:
group: code-coverage-pages
cancel-in-progress: false
env:
GIT_FETCH_JOBS: 8
NET_RETRY_COUNT: 5
# Commit title of the automatically created commits
GCOVR_COMMIT_MSG: "Update coverage data"
# Should branch coverage be reported? Default to no.
BOOST_BRANCH_COVERAGE: 0
# Dependencies:
# EXTRA_BOOST_LIBRARIES: "myorg/myrepo other/repo3"
jobs:
build:
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- runs-on: "ubuntu-24.04"
name: Coverage
cxxstd: "20"
gcovr_script: './ci-automation/scripts/lcov-jenkins-gcc-13.sh --only-gcovr'
name: ${{ matrix.name }}
runs-on: ${{ matrix.runs-on }}
timeout-minutes: 120
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Check for code-coverage Branch
run: |
set -xe
git config --global user.name cppalliance-bot
git config --global user.email cppalliance-bot@example.com
git fetch origin
if git branch -r | grep origin/code-coverage; then
echo "The code-coverage branch exists. Continuing."
else
echo "The code-coverage branch does not exist. Creating it."
git switch --orphan code-coverage
git commit --allow-empty -m "$GCOVR_COMMIT_MSG"
git push origin code-coverage
git checkout "$GITHUB_REF_NAME"
fi
- name: Install Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
- name: Install Python packages
run: pip install gcovr
- name: Checkout ci-automation
uses: actions/checkout@v6
with:
repository: cppalliance/ci-automation
path: ci-automation
- name: Build and run tests & collect coverage data
run: |
set -xe
ls -al
export ORGANIZATION=${GITHUB_REPOSITORY_OWNER}
export REPONAME=$(basename ${GITHUB_REPOSITORY})
export B2_CXXSTD=${{matrix.cxxstd}}
${{matrix.gcovr_script}}
- name: Checkout GitHub pages branch
uses: actions/checkout@v6
with:
ref: code-coverage
path: gh_pages_dir
- name: Copy gcovr results
run: |
set -xe
pwd
ls -al
touch gh_pages_dir/.nojekyll # Prevent GH pages from treating these files as Jekyll pages.
mkdir -p gh_pages_dir/develop
mkdir -p gh_pages_dir/master
rm -rf "gh_pages_dir/${GITHUB_REF_NAME}/gcovr"
cp -rp gcovr "gh_pages_dir/${GITHUB_REF_NAME}/"
echo -e "<html>\n<head>\n</head>\n<body>\n<a href=\"develop/index.html\">develop</a><br>\n<a href=\"master/index.html\">master</a><br>\n</body>\n</html>\n" > gh_pages_dir/index.html
# In the future: echo -e "<html>\n<head>\n</head>\n<body>\n<a href=gcovr/index.html>gcovr</a><br>\n</body>\n</html>\n" > gh_pages_dir/develop/index.html
echo -e "<html>\n<head>\n<meta http-equiv=\"refresh\" content=\"0; url=./gcovr/index.html\">\n</head>\n<body>\n</body>\n</html>\n" > gh_pages_dir/develop/index.html
cp gh_pages_dir/develop/index.html gh_pages_dir/master/index.html
cd gh_pages_dir
git add .
git commit --amend -m "$GCOVR_COMMIT_MSG"
git push -f origin code-coverage
+4 -5
View File
@@ -10,7 +10,6 @@ constant boost_dependencies :
/boost/concept_check//boost_concept_check
/boost/config//boost_config
/boost/predef//boost_predef
/boost/static_assert//boost_static_assert
/boost/throw_exception//boost_throw_exception
/boost/type_traits//boost_type_traits ;
@@ -20,11 +19,11 @@ project /boost/regex
;
explicit
[ alias boost_regex : build//boost_regex ]
[ alias all : boost_regex example test ]
[ alias boost_regex : : : : <library>$(boost_dependencies) ]
[ alias boost_regex_old : build//boost_regex ]
[ alias all : boost_regex boost_regex_old example test ]
;
call-if : boost-library regex
: install boost_regex
: install boost_regex boost_regex_old
;
+1 -1
View File
@@ -5,7 +5,7 @@
project
: requirements
<library>/boost/regex//boost_regex
<library>/boost/regex//boost_regex_old
<library>/boost/timer//boost_timer
<threading>multi
<link>shared:<define>BOOST_REGEX_DYN_LINK=1
+13 -1
View File
@@ -898,6 +898,11 @@ escape_type_class_jump:
}
const charT* pc = m_position;
std::intmax_t i = this->m_traits.toi(pc, m_end, 10);
if(i < 0 && !syn_end)
{
fail(regex_constants::error_backref, m_position - m_base);
return false;
}
if((i < 0) && syn_end)
{
// Check for a named capture, get the leftmost one if there is more than one:
@@ -997,7 +1002,7 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
if((m_position != m_end)
&& (0 == (this->flags() & regbase::main_option_type))
&& (this->m_traits.syntax_type(*m_position) == regex_constants::syntax_plus))
{
{
possessive = true;
++m_position;
}
@@ -1114,6 +1119,13 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
else
contin = false;
break;
case regex_constants::syntax_hash:
if (this->flags() & regex_constants::mod_x) {
while((m_position != m_end) && !is_separator(*m_position++)){}
contin = true;
break;
}
BOOST_REGEX_FALLTHROUGH;
default:
contin = false;
}
+1 -1
View File
@@ -101,7 +101,7 @@ BOOST_REGEX_MODULE_EXPORT inline match_flags operator|(match_flags m1, match_fla
BOOST_REGEX_MODULE_EXPORT inline match_flags operator^(match_flags m1, match_flags m2)
{ return static_cast<match_flags>(static_cast<std::int32_t>(m1) ^ static_cast<std::int32_t>(m2)); }
BOOST_REGEX_MODULE_EXPORT inline match_flags operator~(match_flags m1)
{ return static_cast<match_flags>(~static_cast<std::int32_t>(m1)); }
{ return static_cast<match_flags>(~static_cast<std::int32_t>(m1) & static_cast<std::int32_t>(match_not_any)); }
BOOST_REGEX_MODULE_EXPORT inline match_flags& operator&=(match_flags& m1, match_flags m2)
{ m1 = m1&m2; return m1; }
BOOST_REGEX_MODULE_EXPORT inline match_flags& operator|=(match_flags& m1, match_flags m2)
+4
View File
@@ -227,6 +227,10 @@ public:
{
if(m_is_singular && m_subs.empty())
raise_logic_error();
if (sub >= INT_MAX - 2 )
return m_null;
sub += 2;
if(sub < (int)m_subs.size() && (sub >= 0))
{
@@ -237,8 +237,8 @@ void perl_matcher<BidiIterator, Allocator, traits>::extend_stack()
saved_state* backup_state;
stack_base = static_cast<saved_state*>(get_mem_block());
backup_state = reinterpret_cast<saved_state*>(reinterpret_cast<char*>(stack_base)+BOOST_REGEX_BLOCKSIZE);
saved_extra_block* block = static_cast<saved_extra_block*>(backup_state);
--block;
saved_extra_block* block = reinterpret_cast<saved_extra_block*>(
reinterpret_cast<std::uintptr_t>(backup_state) - sizeof(saved_extra_block));
(void) new (block) saved_extra_block(m_stack_base, m_backup_state);
m_stack_base = stack_base;
m_backup_state = block;
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOOST_REGEX_V5_REGBASE_HPP
#define BOOST_REGEX_V5_REGBASE_HPP
#include <boost/regex/config.hpp>
namespace boost{
//
// class regbase
+2
View File
@@ -19,6 +19,8 @@
#ifndef BOOST_REGEX_SYNTAX_TYPE_HPP
#define BOOST_REGEX_SYNTAX_TYPE_HPP
#include <boost/regex/config.hpp>
namespace boost{
namespace regex_constants{
+4 -1
View File
@@ -5,7 +5,7 @@
project
: requirements
<library>/boost/regex//boost_regex
<library>/boost/regex//boost_regex_old
<library>/boost/detail//boost_detail
<threading>multi
<link>shared:<define>BOOST_REGEX_DYN_LINK=1
@@ -137,5 +137,8 @@ compile test_windows_defs_4.cpp ;
run issue153.cpp : : : "<toolset>msvc:<linkflags>-STACK:2097152" ;
run issue227.cpp ;
run issue232.cpp ;
run issue244.cpp ;
run issue245.cpp ;
run lookbehind_recursion_stress_test.cpp ;
run regex_replace_overflow.cpp ;
+3 -4
View File
@@ -2,15 +2,14 @@
# Distributed under the Boost Software License, Version 1.0.
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
cmake_minimum_required(VERSION 3.5...3.16)
cmake_minimum_required(VERSION 3.5...3.31)
project(cmake_install_test LANGUAGES CXX)
find_package(boost_regex REQUIRED)
find_package(boost_core REQUIRED)
find_package(Boost COMPONENTS regex REQUIRED)
add_executable(quick ../quick.cpp)
target_link_libraries(quick Boost::regex Boost::core)
target_link_libraries(quick Boost::regex)
enable_testing()
add_test(quick quick)
-1
View File
@@ -10,7 +10,6 @@ add_subdirectory(../.. boostorg/reegx)
add_subdirectory(../../../config boostorg/config)
add_subdirectory(../../../core boostorg/core)
add_subdirectory(../../../assert boostorg/assert)
add_subdirectory(../../../static_assert boostorg/static_assert)
add_subdirectory(../../../throw_exception boostorg/throw_exception)
add_subdirectory(../../../predef boostorg/predef)
@@ -1 +0,0 @@
Z(((((((a+)+)+)+)+)+)+)+|Y(((((((a+)+)+)+)+)+)+)+|X(((((((a+)+)+)+)+)+)+)+|W(((((((a+)+)+)+)+)+)+)+|V(((((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+;+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV(((((((a+)+)+)+)+)+)+)+|(a+)+b)
@@ -1 +0,0 @@
Z(((((((a+)+)+)+)+ßÔÖÔ)+|Y(((((((a+)+)+)+)+)++)+)|X(((((((a+)+)+)+)+)+)+)+|W((Ú×(((a+)+)+)+)+)+)+)+;|V((()++)+)+|CW(((((((a+)+)+)+((((a+)+)+)+)+)+)+)+|CZ(((((((a+)+)+)+)+)+)+)+|CY(((((((a+)+)+)+)+)+)+)+|CX(((((((a+)+)+)+)+)+)+)+|CW(((((((a+)+)+)+)+)+)+)+|CV,((((((a+)+)+)+)+)+)+)+|(a+)+bc
@@ -1 +0,0 @@
8^\l*(?:((.Ô*?)\W*(?1)\§*\2[abc]| |((.)\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZ˙˙˙˙˙˙˙˙˙ŔŔŔŔŔŔŔŔŔŔŔŔŔŔŔŔŔŔ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙\pd\)W*(?1)\W*\4|\ZZZZZZZZZZZZZZZZZZZZZZ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙\pd˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙\pdquick brown )ox

Some files were not shown because too many files have changed in this diff Show More