From f89c75f7b0b8ad9d8d204c365444c2612b88b6fe Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sat, 25 Mar 2017 20:34:56 +0300 Subject: [PATCH 01/27] Silence MSVC 14.1 warnings of narrowing conversion In debug mode the compiler is not able to see that the int constant can fit in the character type without loss. --- include/boost/regex/v4/basic_regex_creator.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/regex/v4/basic_regex_creator.hpp b/include/boost/regex/v4/basic_regex_creator.hpp index 132ff84f..623e06f1 100644 --- a/include/boost/regex/v4/basic_regex_creator.hpp +++ b/include/boost/regex/v4/basic_regex_creator.hpp @@ -43,8 +43,8 @@ namespace BOOST_REGEX_DETAIL_NS{ template struct digraph : public std::pair { - digraph() : std::pair(0, 0){} - digraph(charT c1) : std::pair(c1, 0){} + digraph() : std::pair(charT(0), charT(0)){} + digraph(charT c1) : std::pair(c1, charT(0)){} digraph(charT c1, charT c2) : std::pair(c1, c2) {} digraph(const digraph& d) : std::pair(d.first, d.second){} From 791c447922323b52bea36506edd1bd430a8b3446 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 9 Apr 2017 13:20:03 +0100 Subject: [PATCH 02/27] Escape back slashes Fixes Trac #12096. https://svn.boost.org/trac/boost/ticket/12096 --- doc/html/boost_regex/syntax/perl_syntax.html | 4 +-- doc/syntax_perl.qbk | 28 ++++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/doc/html/boost_regex/syntax/perl_syntax.html b/doc/html/boost_regex/syntax/perl_syntax.html index 9fd7546c..5426d9f2 100644 --- a/doc/html/boost_regex/syntax/perl_syntax.html +++ b/doc/html/boost_regex/syntax/perl_syntax.html @@ -578,12 +578,12 @@

-
+ \n

-
+ \n

diff --git a/doc/syntax_perl.qbk b/doc/syntax_perl.qbk index 2b8b13fb..0dc63c42 100644 --- a/doc/syntax_perl.qbk +++ b/doc/syntax_perl.qbk @@ -299,24 +299,24 @@ The following escape sequences are all synonyms for single characters: [table [[Escape][Character]] -[[[^\a]][[^\a]]] -[[[^\e]][[^0x1B]]] -[[[^\f]][[^\f]]] -[[[^\n]][[^\n]]] -[[[^\r]][[^\r]]] -[[[^\t]][[^\t]]] -[[[^\v]][[^\v]]] -[[[^\b]][[^\b] (but only inside a character class declaration).]] -[[[^\cX]][An ASCII escape sequence - the character whose code point is X % 32]] -[[[^\xdd]][A hexadecimal escape sequence - matches the single character whose +[[[^\\a]][[^\\a]]] +[[[^\\e]][[^0x1B]]] +[[[^\\f]][[^\\f]]] +[[[^\\n]][[^\\n]]] +[[[^\\r]][[^\\r]]] +[[[^\\t]][[^\\t]]] +[[[^\\v]][[^\\v]]] +[[[^\\b]][[^\\b] (but only inside a character class declaration).]] +[[[^\\cX]][An ASCII escape sequence - the character whose code point is X % 32]] +[[[^\\xdd]][A hexadecimal escape sequence - matches the single character whose code point is 0xdd.]] -[[[^\x{dddd}]][A hexadecimal escape sequence - matches the single character whose +[[[^\\x{dddd}]][A hexadecimal escape sequence - matches the single character whose code point is 0xdddd.]] -[[[^\0ddd]][An octal escape sequence - matches the single character whose +[[[^\\0ddd]][An octal escape sequence - matches the single character whose code point is 0ddd.]] -[[[^\N{name}]][Matches the single character which has the +[[[^\\N{name}]][Matches the single character which has the [link boost_regex.syntax.collating_names symbolic name] /name/. - For example [^\N{newline}] matches the single character \\n.]] + For example [^\\N{newline}] matches the single character \\n.]] ] [h5 "Single character" character classes:] From b9cad50387f7054fc350f1b49b3cfe4c808c23d4 Mon Sep 17 00:00:00 2001 From: Daniela Engert Date: Sun, 14 May 2017 16:37:59 +0200 Subject: [PATCH 03/27] Conditionally replace deprecated/removed C++98 std::bind1st by std::bind. Signed-off-by: Daniela Engert --- example/snippets/regex_grep_example_3.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/example/snippets/regex_grep_example_3.cpp b/example/snippets/regex_grep_example_3.cpp index 02aaa724..5bb3fd0a 100644 --- a/example/snippets/regex_grep_example_3.cpp +++ b/example/snippets/regex_grep_example_3.cpp @@ -89,6 +89,11 @@ void class_index::IndexClasses(const std::string& file) start, end, expression); +#elif defined(BOOST_NO_CXX98_BINDERS) + boost::regex_grep(std::bind(&class_index::grep_callback, this, std::placeholders::_1), + start, + end, + expression); #else boost::regex_grep(std::bind1st(std::mem_fun(&class_index::grep_callback), this), start, From 47635d073307004b4c69239791111be267cd8101 Mon Sep 17 00:00:00 2001 From: Vemund Handeland Date: Mon, 22 May 2017 15:39:45 +0200 Subject: [PATCH 04/27] Update icu.cpp Conditionally replace deprecated/removed C++98 std::bind2nd by std::bind --- src/icu.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/icu.cpp b/src/icu.cpp index 5d166a69..be6e5a1c 100644 --- a/src/icu.cpp +++ b/src/icu.cpp @@ -430,7 +430,11 @@ icu_regex_traits::char_class_type icu_regex_traits::lookup_classname(const char_ icu_regex_traits::string_type icu_regex_traits::lookup_collatename(const char_type* p1, const char_type* p2) const { string_type result; +#ifdef BOOST_NO_CXX98_BINDERS + if(std::find_if(p1, p2, std::bind(std::greater< ::UChar32>(), std::placeholders::_1, 0x7f)) == p2) +#else if(std::find_if(p1, p2, std::bind2nd(std::greater< ::UChar32>(), 0x7f)) == p2) +#endif { #ifndef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS std::string s(p1, p2); From 35fa1626d52933bd0d536ef092f83828c912da38 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 30 May 2017 09:47:07 +0100 Subject: [PATCH 05/27] Add CI testing. --- .travis.yml | 448 +++++++++++++++++++++++++++++++++++++++++++++++++++ appveyor.yml | 63 ++++++++ 2 files changed, 511 insertions(+) create mode 100644 .travis.yml create mode 100644 appveyor.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..c9d76884 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,448 @@ +# Copyright 2016, 2017 Peter Dimov +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +language: cpp + +sudo: false + +python: "2.7" + +os: + - linux + - osx + +branches: + only: + - master + - develop + +env: + matrix: + - BOGUS_JOB=true + +matrix: + + exclude: + - env: BOGUS_JOB=true + + include: + - os: linux + env: TOOLSET=gcc COMPILER=g++ CXXSTD=c++03 + + - os: linux + env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++03 + addons: + apt: + packages: + - g++-4.7 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=c++11 + addons: + apt: + packages: + - g++-4.7 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++03 + addons: + apt: + packages: + - g++-4.8 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=c++11 + addons: + apt: + packages: + - g++-4.8 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++03 + addons: + apt: + packages: + - g++-4.9 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=c++11 + addons: + apt: + packages: + - g++-4.9 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++03 + addons: + apt: + packages: + - g++-5 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++11 + addons: + apt: + packages: + - g++-5 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=c++14 + addons: + apt: + packages: + - g++-5 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++03 + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++11 + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++14 + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=c++1z + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++03 + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++11 + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++14 + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=gnu++1z + addons: + apt: + packages: + - g++-6 + sources: + - ubuntu-toolchain-r-test + + - os: linux + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + + - os: linux + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++03 + addons: + apt: + packages: + - clang-3.5 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.5 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=c++11 + addons: + apt: + packages: + - clang-3.5 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.5 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++03 + addons: + apt: + packages: + - clang-3.6 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.6 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=c++11 + addons: + apt: + packages: + - clang-3.6 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.6 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++03 + addons: + apt: + packages: + - clang-3.7 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.7 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=c++11 + addons: + apt: + packages: + - clang-3.7 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.7 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++03 + addons: + apt: + packages: + - clang-3.8 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++11 + addons: + apt: + packages: + - clang-3.8 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++14 + addons: + apt: + packages: + - clang-3.8 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=c++1z + addons: + apt: + packages: + - clang-3.8 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++03 + addons: + apt: + packages: + - clang-3.9 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.9 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++11 + addons: + apt: + packages: + - clang-3.9 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.9 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++14 + addons: + apt: + packages: + - clang-3.9 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.9 + + - os: linux + env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=c++1z + addons: + apt: + packages: + - clang-3.9 + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.9 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + osx_image: xcode8.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + osx_image: xcode8.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 + osx_image: xcode8.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z + osx_image: xcode8.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + osx_image: xcode8.2 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + osx_image: xcode8.2 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 + osx_image: xcode8.2 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z + osx_image: xcode8.1 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + osx_image: xcode8.1 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + osx_image: xcode8.1 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 + osx_image: xcode8.1 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z + osx_image: xcode8.1 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + osx_image: xcode8.0 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + osx_image: xcode8.0 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 + osx_image: xcode8.0 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z + osx_image: xcode8.0 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + osx_image: xcode7.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + osx_image: xcode7.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 + osx_image: xcode7.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z + osx_image: xcode7.3 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++03 + osx_image: xcode6.4 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++11 + osx_image: xcode6.4 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++14 + osx_image: xcode6.4 + + - os: osx + env: TOOLSET=clang COMPILER=clang++ CXXSTD=c++1z + osx_image: xcode6.4 + +install: + - cd .. + - git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root + - cd boost-root + - git submodule update --init tools/build + - git submodule update --init libs/config + - cp -r $TRAVIS_BUILD_DIR/* libs/regex + - git submodule update --init tools/boostdep + - python tools/boostdep/depinst/depinst.py regex + - ./bootstrap.sh + - ./b2 headers + +script: + - |- + echo "using $TOOLSET : : $COMPILER : -std=$CXXSTD ;" > ~/user-config.jam + - (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET && ./config_info_travis) + - ./b2 -j3 libs/regex/test toolset=$TOOLSET + +notifications: + email: + on_success: always diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 00000000..004cecd2 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,63 @@ +# Copyright 2016 Peter Dimov +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt) + +version: 1.0.{build}-{branch} + +shallow_clone: true + +branches: + only: + - master + - develop + +platform: + - x86 + - x64 + +environment: + matrix: + - ARGS: --toolset=msvc-9.0 address-model=32 + - ARGS: --toolset=msvc-10.0 address-model=32 + - ARGS: --toolset=msvc-11.0 address-model=32 + - ARGS: --toolset=msvc-12.0 address-model=32 + - ARGS: --toolset=msvc-14.0 address-model=32 + - ARGS: --toolset=msvc-12.0 address-model=64 + - ARGS: --toolset=msvc-14.0 address-model=64 + - ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ARGS: --toolset=msvc-14.1 address-model=64 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ARGS: --toolset=msvc-14.1 address-model=32 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest + - ARGS: --toolset=gcc address-model=64 + PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH% + - ARGS: --toolset=gcc address-model=64 cxxflags=-std=gnu++1z + PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH% + - ARGS: --toolset=gcc address-model=32 + PATH: C:\mingw-w64\i686-5.3.0-posix-dwarf-rt_v4-rev0\mingw32\bin;%PATH% + - ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition + PATH: C:\MinGW\bin;%PATH% + + +install: + - cd .. + - git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root + - cd boost-root + - git submodule update --init tools/build + - git submodule update --init libs/config + - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\regex + - git submodule update --init tools/boostdep + - python tools/boostdep/depinst/depinst.py regex + - bootstrap + - b2 headers + +build: off + +test_script: + - cd libs\config\test + - ..\..\..\b2 config_info_travis_install toolset=%TOOLSET% + - config_info_travis + - cd ..\..\regex\test + - ..\..\..\b2 -j3 toolset=%TOOLSET% define=CI_SUPPRESS_KNOWN_ISSUES From 180c0e7e91517a2469377741e6b5622cd24ef2b0 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 30 May 2017 13:27:31 +0100 Subject: [PATCH 06/27] CI: Manually fix up missing dependency to program_options. --- .travis.yml | 2 ++ appveyor.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index c9d76884..436139f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -431,9 +431,11 @@ install: - cd boost-root - git submodule update --init tools/build - git submodule update --init libs/config + - git submodule update --init libs/program_options - cp -r $TRAVIS_BUILD_DIR/* libs/regex - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py regex + - python tools/boostdep/depinst/depinst.py program_options - ./bootstrap.sh - ./b2 headers diff --git a/appveyor.yml b/appveyor.yml index 004cecd2..8269bd78 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -47,9 +47,11 @@ install: - cd boost-root - git submodule update --init tools/build - git submodule update --init libs/config + - git submodule update --init libs/prohram_options - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\regex - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py regex + - python tools/boostdep/depinst/depinst.py program_options - bootstrap - b2 headers From 2c98bafda8078088240e7f28c3626238a0050aaa Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 30 May 2017 15:03:40 +0100 Subject: [PATCH 07/27] CI: Fix program_options dependency spelling. --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 8269bd78..36d3f145 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -47,7 +47,7 @@ install: - cd boost-root - git submodule update --init tools/build - git submodule update --init libs/config - - git submodule update --init libs/prohram_options + - git submodule update --init libs/program_options - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\regex - git submodule update --init tools/boostdep - python tools/boostdep/depinst/depinst.py regex From 1dad9252db95967078eb5b8b0fc753424a5e8029 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 30 May 2017 19:06:05 +0100 Subject: [PATCH 08/27] CI: Manually specify dependencies, and streamline number of Appveyor tests. --- .travis.yml | 42 +++++++++++++++++++++++++++++++++++++++--- appveyor.yml | 43 +++++++++++++++++++++++++++++++++++++++---- 2 files changed, 78 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 436139f6..2939a2b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -431,11 +431,47 @@ install: - cd boost-root - git submodule update --init tools/build - git submodule update --init libs/config + - git submodule update --init libs/core + - git submodule update --init libs/detail + - git submodule update --init libs/smart_ptr + - git submodule update --init libs/predef + - git submodule update --init libs/assert + - git submodule update --init libs/throw_exception + - git submodule update --init libs/mpl + - git submodule update --init libs/type_traits + - git submodule update --init libs/static_assert + - git submodule update --init libs/integer + - git submodule update --init libs/preprocessor + - git submodule update --init libs/functional - git submodule update --init libs/program_options + - git submodule update --init libs/chrono + - git submodule update --init libs/system + - git submodule update --init libs/thread + - git submodule update --init libs/winapi + - git submodule update --init libs/move + - git submodule update --init libs/date_time + - git submodule update --init libs/ratio + - git submodule update --init libs/iterator + - git submodule update --init libs/range + - git submodule update --init libs/any + - git submodule update --init libs/concept_check + - git submodule update --init libs/array + - git submodule update --init libs/timer + - git submodule update --init libs/bind + - git submodule update --init libs/utility + - git submodule update --init libs/io + - git submodule update --init libs/intrusive + - git submodule update --init libs/container + - git submodule update --init libs/tuple + - git submodule update --init libs/exception + - git submodule update --init libs/function + - git submodule update --init libs/type_index + - git submodule update --init libs/lexical_cast + - git submodule update --init libs/numeric + - git submodule update --init libs/math + - git submodule update --init libs/tokenizer + - git submodule update --init libs/optional - cp -r $TRAVIS_BUILD_DIR/* libs/regex - - git submodule update --init tools/boostdep - - python tools/boostdep/depinst/depinst.py regex - - python tools/boostdep/depinst/depinst.py program_options - ./bootstrap.sh - ./b2 headers diff --git a/appveyor.yml b/appveyor.yml index 36d3f145..54930945 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,7 +12,6 @@ branches: - develop platform: - - x86 - x64 environment: @@ -47,11 +46,47 @@ install: - cd boost-root - git submodule update --init tools/build - git submodule update --init libs/config + - git submodule update --init libs/core + - git submodule update --init libs/detail + - git submodule update --init libs/smart_ptr + - git submodule update --init libs/predef + - git submodule update --init libs/assert + - git submodule update --init libs/throw_exception + - git submodule update --init libs/mpl + - git submodule update --init libs/type_traits + - git submodule update --init libs/static_assert + - git submodule update --init libs/integer + - git submodule update --init libs/preprocessor + - git submodule update --init libs/functional - git submodule update --init libs/program_options + - git submodule update --init libs/chrono + - git submodule update --init libs/system + - git submodule update --init libs/thread + - git submodule update --init libs/winapi + - git submodule update --init libs/move + - git submodule update --init libs/date_time + - git submodule update --init libs/ratio + - git submodule update --init libs/iterator + - git submodule update --init libs/range + - git submodule update --init libs/any + - git submodule update --init libs/concept_check + - git submodule update --init libs/array + - git submodule update --init libs/timer + - git submodule update --init libs/bind + - git submodule update --init libs/utility + - git submodule update --init libs/io + - git submodule update --init libs/intrusive + - git submodule update --init libs/container + - git submodule update --init libs/tuple + - git submodule update --init libs/exception + - git submodule update --init libs/function + - git submodule update --init libs/type_index + - git submodule update --init libs/lexical_cast + - git submodule update --init libs/numeric + - git submodule update --init libs/math + - git submodule update --init libs/tokenizer + - git submodule update --init libs/optional - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\regex - - git submodule update --init tools/boostdep - - python tools/boostdep/depinst/depinst.py regex - - python tools/boostdep/depinst/depinst.py program_options - bootstrap - b2 headers From cc09911d6d57ff659ffcbe04fe57405dc63e932b Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 31 May 2017 08:49:27 +0100 Subject: [PATCH 09/27] CI: Add missing dependency --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 2939a2b4..fe9894be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -471,6 +471,7 @@ install: - git submodule update --init libs/math - git submodule update --init libs/tokenizer - git submodule update --init libs/optional + - git submodule update --init libs/atomic - cp -r $TRAVIS_BUILD_DIR/* libs/regex - ./bootstrap.sh - ./b2 headers From 7fa0ddd8414775080913f7fc96099b6169add626 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 31 May 2017 13:24:43 +0100 Subject: [PATCH 10/27] CI: Add one more missing dependency. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index fe9894be..4c3dd335 100644 --- a/.travis.yml +++ b/.travis.yml @@ -472,6 +472,7 @@ install: - git submodule update --init libs/tokenizer - git submodule update --init libs/optional - git submodule update --init libs/atomic + - git submodule update --init libs/rational - cp -r $TRAVIS_BUILD_DIR/* libs/regex - ./bootstrap.sh - ./b2 headers From dba63e41a8dce597c7c358f3fca16e193e7cafd6 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 31 May 2017 14:59:40 +0100 Subject: [PATCH 11/27] CI: Add one more missing dependency. --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4c3dd335..56de8e01 100644 --- a/.travis.yml +++ b/.travis.yml @@ -473,6 +473,7 @@ install: - git submodule update --init libs/optional - git submodule update --init libs/atomic - git submodule update --init libs/rational + - git submodule update --init libs/algorithm - cp -r $TRAVIS_BUILD_DIR/* libs/regex - ./bootstrap.sh - ./b2 headers From af55bf7b1f711ddc9d6b50a8b63bd140c16545f0 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Wed, 31 May 2017 15:00:37 +0100 Subject: [PATCH 12/27] CI: Add more dependencies to appveyor file. --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 54930945..45fbae40 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -86,6 +86,9 @@ install: - git submodule update --init libs/math - git submodule update --init libs/tokenizer - git submodule update --init libs/optional + - git submodule update --init libs/atomic + - git submodule update --init libs/rational + - git submodule update --init libs/algorithm - xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\regex - bootstrap - b2 headers From 4ac4a451df2809d80aac2ab4e0e2771de7e07015 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 4 Jun 2017 08:06:20 +0100 Subject: [PATCH 13/27] CI: Fix bjam arguments on appveyor. --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 45fbae40..433b30e9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -97,7 +97,7 @@ build: off test_script: - cd libs\config\test - - ..\..\..\b2 config_info_travis_install toolset=%TOOLSET% + - ..\..\..\b2 config_info_travis_install %ARGS% - config_info_travis - cd ..\..\regex\test - - ..\..\..\b2 -j3 toolset=%TOOLSET% define=CI_SUPPRESS_KNOWN_ISSUES + - ..\..\..\b2 -j3 %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES From ab399c915959cf2551fd939b0260bb50b25087d5 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 30 Jul 2017 18:51:10 +0100 Subject: [PATCH 14/27] Documentation fix for backreferences example. Fixes issue #33. --- doc/html/boost_regex/syntax/basic_extended.html | 2 +- doc/html/boost_regex/syntax/basic_syntax.html | 2 +- doc/html/boost_regex/syntax/perl_syntax.html | 2 +- doc/html/index.html | 2 +- doc/syntax_basic.qbk | 2 +- doc/syntax_extended.qbk | 2 +- doc/syntax_perl.qbk | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/html/boost_regex/syntax/basic_extended.html b/doc/html/boost_regex/syntax/basic_extended.html index 9582a3e3..e05ccf7e 100644 --- a/doc/html/boost_regex/syntax/basic_extended.html +++ b/doc/html/boost_regex/syntax/basic_extended.html @@ -191,7 +191,7 @@ cab is in the range 1-9, matches the same string that was matched by sub-expression n. For example the expression:

-
^(a*).*\1$
+
^(a*)[^a]*\1$

Will match the string:

diff --git a/doc/html/boost_regex/syntax/basic_syntax.html b/doc/html/boost_regex/syntax/basic_syntax.html index 4e720112..208fb9d0 100644 --- a/doc/html/boost_regex/syntax/basic_syntax.html +++ b/doc/html/boost_regex/syntax/basic_syntax.html @@ -161,7 +161,7 @@ aaaa is in the range 1-9, matches the same string that was matched by sub-expression n. For example the expression:

-
^\(a*\).*\1$
+
^\(a*\)[^a]*\1$

Will match the string:

diff --git a/doc/html/boost_regex/syntax/perl_syntax.html b/doc/html/boost_regex/syntax/perl_syntax.html index 5426d9f2..fffc1b40 100644 --- a/doc/html/boost_regex/syntax/perl_syntax.html +++ b/doc/html/boost_regex/syntax/perl_syntax.html @@ -268,7 +268,7 @@ is in the range 1-9, matches the same string that was matched by sub-expression n. For example the expression:

-
^(a*).*\1$
+
^(a*)[^a]*\1$

Will match the string:

diff --git a/doc/html/index.html b/doc/html/index.html index 50dfde87..2aa1fd55 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -221,7 +221,7 @@

- +

Last revised: February 24, 2017 at 13:14:00 GMT

Last revised: July 30, 2017 at 17:49:38 GMT


diff --git a/doc/syntax_basic.qbk b/doc/syntax_basic.qbk index c3741934..865ef995 100644 --- a/doc/syntax_basic.qbk +++ b/doc/syntax_basic.qbk @@ -106,7 +106,7 @@ An escape character followed by a digit /n/, where /n/ is in the range 1-9, matches the same string that was matched by sub-expression /n/. For example the expression: -[pre ^\\(a\*\\).\*\\1$] +[pre ^\\(a\*\\)\[\^a\]\*\\1$] Will match the string: diff --git a/doc/syntax_extended.qbk b/doc/syntax_extended.qbk index 2b3ab31a..0146d5be 100644 --- a/doc/syntax_extended.qbk +++ b/doc/syntax_extended.qbk @@ -128,7 +128,7 @@ An escape character followed by a digit /n/, where /n/ is in the range 1-9, matches the same string that was matched by sub-expression /n/. For example the expression: -[pre ^(a\*).\*\\1\$] +[pre ^(a\*)\[\^a\]\*\\1\$] Will match the string: diff --git a/doc/syntax_perl.qbk b/doc/syntax_perl.qbk index 0dc63c42..6ee00e4c 100644 --- a/doc/syntax_perl.qbk +++ b/doc/syntax_perl.qbk @@ -173,7 +173,7 @@ An escape character followed by a digit /n/, where /n/ is in the range 1-9, matches the same string that was matched by sub-expression /n/. For example the expression: -[pre ^(a\*).\*\\1$] +[pre ^(a\*)\[\^a\]\*\\1$] Will match the string: From d97bcfb5dd6b4418040b776f33a9342a4b2b6b75 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 31 Jul 2017 18:51:25 +0100 Subject: [PATCH 15/27] Fix integer types and signedness: Fixes https://svn.boost.org/trac10/ticket/13034 --- include/boost/regex/v4/perl_matcher.hpp | 2 +- include/boost/regex/v4/perl_matcher_non_recursive.hpp | 4 ++-- include/boost/regex/v4/perl_matcher_recursive.hpp | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/boost/regex/v4/perl_matcher.hpp b/include/boost/regex/v4/perl_matcher.hpp index 32517c62..abd38122 100644 --- a/include/boost/regex/v4/perl_matcher.hpp +++ b/include/boost/regex/v4/perl_matcher.hpp @@ -122,7 +122,7 @@ inline int string_compare(const Seq& s, const C* p) { ++i; } - return (i == s.size()) ? -p[i] : s[i] - p[i]; + return (i == s.size()) ? -(int)p[i] : (int)s[i] - (int)p[i]; } # define STR_COMP(s,p) string_compare(s,p) diff --git a/include/boost/regex/v4/perl_matcher_non_recursive.hpp b/include/boost/regex/v4/perl_matcher_non_recursive.hpp index c12dea8e..fb008f2b 100644 --- a/include/boost/regex/v4/perl_matcher_non_recursive.hpp +++ b/include/boost/regex/v4/perl_matcher_non_recursive.hpp @@ -688,7 +688,7 @@ bool perl_matcher::match_rep() template bool perl_matcher::match_dot_repeat_slow() { - unsigned count = 0; + std::size_t count = 0; const re_repeat* rep = static_cast(pstate); re_syntax_base* psingle = rep->next.p; // match compulsary repeats first: @@ -740,7 +740,7 @@ bool perl_matcher::match_dot_repeat_fast() const re_repeat* rep = static_cast(pstate); bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent); - unsigned count = static_cast((std::min)(static_cast(::boost::BOOST_REGEX_DETAIL_NS::distance(position, last)), static_cast(greedy ? rep->max : rep->min))); + std::size_t count = static_cast((std::min)(static_cast(::boost::BOOST_REGEX_DETAIL_NS::distance(position, last)), greedy ? rep->max : rep->min)); if(rep->min > count) { position = last; diff --git a/include/boost/regex/v4/perl_matcher_recursive.hpp b/include/boost/regex/v4/perl_matcher_recursive.hpp index 8eb23abf..6c33ba47 100644 --- a/include/boost/regex/v4/perl_matcher_recursive.hpp +++ b/include/boost/regex/v4/perl_matcher_recursive.hpp @@ -423,7 +423,7 @@ bool perl_matcher::match_dot_repeat_slow() #pragma warning(push) #pragma warning(disable:4127) #endif - unsigned count = 0; + std::size_t count = 0; const re_repeat* rep = static_cast(pstate); re_syntax_base* psingle = rep->next.p; // match compulsary repeats first: @@ -497,7 +497,7 @@ bool perl_matcher::match_dot_repeat_fast() #pragma warning(disable:4267) #endif bool greedy = (rep->greedy) && (!(m_match_flags & regex_constants::match_any) || m_independent); - std::size_t count = (std::min)(static_cast(::boost::BOOST_REGEX_DETAIL_NS::distance(position, last)), static_cast(greedy ? rep->max : rep->min)); + std::size_t count = (std::min)(static_cast(::boost::BOOST_REGEX_DETAIL_NS::distance(position, last)), greedy ? rep->max : rep->min); if(rep->min > count) { position = last; @@ -657,7 +657,7 @@ bool perl_matcher::match_set_repeat() #endif const re_repeat* rep = static_cast(pstate); const unsigned char* map = static_cast(rep->next.p)->_map; - unsigned count = 0; + std::size_t count = 0; // // start by working out how much we can skip: // @@ -753,7 +753,7 @@ bool perl_matcher::match_long_set_repeat() typedef typename traits::char_class_type char_class_type; const re_repeat* rep = static_cast(pstate); const re_set_long* set = static_cast*>(pstate->next.p); - unsigned count = 0; + std::size_t count = 0; // // start by working out how much we can skip: // From bc9b25b5d3c3784543158510c6087d41739ab64a Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Mon, 31 Jul 2017 19:18:10 +0100 Subject: [PATCH 16/27] Fix potential overflow in max_state_count calculation. Fixes: https://svn.boost.org/trac10/ticket/13036. --- include/boost/regex/v4/perl_matcher_common.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/boost/regex/v4/perl_matcher_common.hpp b/include/boost/regex/v4/perl_matcher_common.hpp index 7974e748..f08e9d43 100644 --- a/include/boost/regex/v4/perl_matcher_common.hpp +++ b/include/boost/regex/v4/perl_matcher_common.hpp @@ -113,6 +113,11 @@ void perl_matcher::estimate_max_state_count(std std::ptrdiff_t states = re.size(); if(states == 0) states = 1; + if ((std::numeric_limits::max)() / states < states) + { + max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits::max)() - 2); + return; + } states *= states; if((std::numeric_limits::max)() / dist < states) { From 9cfc6a4e3074d0456267e410ad706bfdcbecab08 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 1 Aug 2017 08:18:05 +0100 Subject: [PATCH 17/27] Change performance doc generator to shorten path names. Make sure all sections have names. See #13001. --- doc/introduction.qbk | 2 +- doc/regex.qbk | 6 +- performance/doc/performance_tables.qbk | 252 ++++++++----------------- performance/table_helper.cpp | 9 +- 4 files changed, 88 insertions(+), 181 deletions(-) diff --git a/doc/introduction.qbk b/doc/introduction.qbk index 2c1e29b9..52af78f4 100644 --- a/doc/introduction.qbk +++ b/doc/introduction.qbk @@ -5,7 +5,7 @@ http://www.boost.org/LICENSE_1_0.txt). ] -[section Introduction and Overview] +[section:intro Introduction and Overview] Regular expressions are a form of pattern-matching that are often used in text processing; many users will be familiar with the Unix utilities grep, sed diff --git a/doc/regex.qbk b/doc/regex.qbk index b8454a01..643db9a2 100644 --- a/doc/regex.qbk +++ b/doc/regex.qbk @@ -81,20 +81,20 @@ PDF version of this manual is also available]. [include posix_api.qbk] [include concepts.qbk] -[section Deprecated Interfaces] +[section:deprecated Deprecated Interfaces] [include regex_format.qbk] [include regex_grep.qbk] [include regex_split.qbk] [include old_regex.qbk] [endsect] -[section Internal Details] +[section:internals Internal Details] [include unicode_iterators.qbk] [endsect] [endsect] -[section Background Information] +[section:background Background Information] [include headers.qbk] [include locale.qbk] diff --git a/performance/doc/performance_tables.qbk b/performance/doc/performance_tables.qbk index bbf9b9a5..81a1a1d3 100644 --- a/performance/doc/performance_tables.qbk +++ b/performance/doc/performance_tables.qbk @@ -1,212 +1,112 @@ [/tables:] -[template table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[table:table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing Perl searches (platform = linux, compiler = GNU C++ version 5.1.0) -[[Expression[br]Text][std::regex][boost 1.59][boost::xpressive::cregex][PCRE-10.10]] -[[[^(?i)\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role grey -]][[role blue 1.44[br](340578ns)]][[role blue 1.49[br](354327ns)]][[role green 1.00[br](237126ns)]]] -[[[^(?i)\u005D+face\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>.\*?<\/font>][br]In file: ../../../libs/libraries.htm][[role grey -]][[role blue 2.19[br](160902ns)]][[role blue 1.21[br](89265ns)]][[role green 1.00[br](73565ns)]]] -[[[^(?i)\u005D\*>.\*?<\/h\u005B12345678\u005D>][br]In file: ../../../libs/libraries.htm][[role grey -]][[role blue 1.90[br](161009ns)]][[role blue 2.30[br](194911ns)]][[role green 1.00[br](84846ns)]]] -[[[^(?i)\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role grey -]][[role blue 2.27[br](164055ns)]][[role blue 1.38[br](100267ns)]][[role green 1.00[br](72402ns)]]] -[[[^(?i)

.\*?<\/p>][br]In file: ../../../libs/libraries.htm][[role grey -]][[role blue 2.14[br](160542ns)]][[role blue 1.72[br](129220ns)]][[role green 1.00[br](75127ns)]]] -[[[^(\\w+)\\s\*(\\(\u005B\^()\u005D++(?:(?2)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))\\s\*(\\{\u005B\^{}\u005D++((?3)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\})][br]In file: boost/multiprecision/number.hpp][[role grey -]][[role green 1.00[br](1136822ns)]][[role grey -]][[role blue 2.55[br](2896286ns)]]] -[[[^(\^\u005B \\t\u005D\*\#(?:(?>\u005B\^\\\\\\n\u005D+)|\\\\(?>\\s\*\\n|.))\*)|][br]In file: boost/multiprecision/number.hpp][[role grey -]][[role blue 1.88[br](11915857ns)]][[role green 1.14[br](7206389ns)]][[role green 1.00[br](6347410ns)]]] -[[[^(template\u005B\u005B:space:\u005D\u005D\*<\u005B\^;:{\u005D+>\u005B\u005B:space:\u005D\u005D\*)?(class|struct)\u005B\u005B:space:\u005D\u005D\*(\\w+(\u005B \u005D\*\\(\u005B\^)\u005D\*\\))?\u005B\u0 ...][br]In file: boost/multiprecision/number.hpp][[role blue 3.55[br](20770292ns)]][[role blue 1.78[br](10395642ns)]][[role green 1.00[br](5856680ns)]][[role blue 1.84[br](10752084ns)]]] -[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role red 33.79[br](2157684ns)]][[role green 1.00[br](63861ns)]][[role green 1.13[br](72354ns)]][[role green 1.15[br](73190ns)]]] -[[[^\\w+\\s\*(\\(\u005B\^()\u005D++(?:(?1)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))][br]In file: boost/multiprecision/number.hpp][[role grey -]][[role green 1.00[br](1167674ns)]][[role grey -]][[role blue 1.47[br](1710795ns)]]] -[[[^\\{\u005B\^{}\u005D++((?0)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\}][br]In file: boost/multiprecision/number.hpp][[role grey -]][[role blue 1.32[br](150540ns)]][[role grey -]][[role green 1.00[br](114132ns)]]] -[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("\u005B\^"\u005D+"|<\u005B\^>\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role red 10.62[br](1269946ns)]][[role blue 1.43[br](171067ns)]][[role green 1.00[br](119573ns)]][[role blue 1.35[br](161102ns)]]] -[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("boost\/\u005B\^"\u005D+"|\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role red 10.59[br](1271338ns)]][[role blue 1.44[br](173240ns)]][[role green 1.00[br](120003ns)]][[role blue 1.34[br](160962ns)]]] +[template table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_[] +[table:table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_ Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) +[[Expression[br]Text][boost 1.65][PCRE-10.10][RE2][std::regex][boost::xpressive::cregex]] +[[[^(?i)\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 1.36[br](21565ns)]][[role green 1.00[br](15821ns)]][[role green 1.08[br](17111ns)]][[role grey -]][[role blue 2.89[br](45731ns)]]] +[[[^(?i)\u005D+face\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>.\*?<\/font>][br]In file: ../../../libs/libraries.htm][[role blue 3.05[br](16442ns)]][[role blue 1.58[br](8492ns)]][[role green 1.00[br](5385ns)]][[role grey -]][[role blue 3.31[br](17804ns)]]] +[[[^(?i)\u005D\*>.\*?<\/h\u005B12345678\u005D>][br]In file: ../../../libs/libraries.htm][[role blue 2.11[br](15434ns)]][[role blue 1.31[br](9615ns)]][[role green 1.00[br](7315ns)]][[role grey -]][[role red 4.28[br](31331ns)]]] +[[[^(?i)\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 2.73[br](16457ns)]][[role blue 1.41[br](8503ns)]][[role green 1.00[br](6023ns)]][[role grey -]][[role blue 3.14[br](18913ns)]]] +[[[^(?i)

.\*?<\/p>][br]In file: ../../../libs/libraries.htm][[role blue 2.32[br](15717ns)]][[role blue 1.57[br](10652ns)]][[role green 1.00[br](6789ns)]][[role grey -]][[role blue 3.76[br](25542ns)]]] +[[[^(\\w+)\\s\*(\\(\u005B\^()\u005D++(?:(?2)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))\\s\*(\\{\u005B\^{}\u005D++((?3)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\})][br]In file: boost/multiprecision/number.hpp][[role green 1.00[br](1125008ns)]][[role blue 2.90[br](3265708ns)]][[role grey -]][[role grey -]][[role grey -]]] +[[[^(\^\u005B \\t\u005D\*\#(?:(?>\u005B\^\\\\\\n\u005D+)|\\\\(?>\\s\*\\n|.))\*)|][br]In file: boost/multiprecision/number.hpp][[role blue 1.55[br](11035845ns)]][[role green 1.00[br](7123895ns)]][[role grey -]][[role grey -]][[role blue 1.46[br](10415180ns)]]] +[[[^(template\u005B\u005B:space:\u005D\u005D\*<\u005B\^;:{\u005D+>\u005B\u005B:space:\u005D\u005D\*)?(class|struct)\u005B\u005B:space:\u005D\u005D\*(\\w+(\u005B \u005D\*\\(\u005B\^)\u005D\*\\))?\u005B\u0 ...][br]In file: boost/multiprecision/number.hpp][[role red 26.17[br](8436744ns)]][[role red 32.97[br](10629852ns)]][[role green 1.00[br](322399ns)]][[role red 811.84[br](261737971ns)]][[role red 23.34[br](7526351ns)]]] +[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role blue 1.58[br](10246ns)]][[role green 1.00[br](6487ns)]][[role blue 2.48[br](16109ns)]][[role red 5.39[br](34994ns)]][[role green 1.09[br](7046ns)]]] +[[[^\\w+\\s\*(\\(\u005B\^()\u005D++(?:(?1)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))][br]In file: boost/multiprecision/number.hpp][[role green 1.00[br](1152646ns)]][[role blue 1.70[br](1962067ns)]][[role grey -]][[role grey -]][[role grey -]]] +[[[^\\{\u005B\^{}\u005D++((?0)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\}][br]In file: boost/multiprecision/number.hpp][[role blue 1.62[br](255439ns)]][[role green 1.00[br](158034ns)]][[role grey -]][[role grey -]][[role grey -]]] +[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("\u005B\^"\u005D+"|<\u005B\^>\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role blue 1.48[br](268270ns)]][[role green 1.08[br](195553ns)]][[role blue 1.78[br](323879ns)]][[role red 7.75[br](1406976ns)]][[role green 1.00[br](181554ns)]]] +[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("boost\/\u005B\^"\u005D+"|\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role blue 1.48[br](268560ns)]][[role green 1.08[br](195915ns)]][[role blue 1.76[br](319886ns)]][[role red 7.72[br](1398962ns)]][[role green 1.00[br](181328ns)]]] ] ] -[template table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[table:table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 5.1.0) -[[Expression[br]Text][std::regex][boost 1.59][POSIX]] -[[[^\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 1.47[br](2329256ns)]][[role green 1.00[br](1583069ns)]][[role blue 2.43[br](3849462ns)]]] -[[[^\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role red 10.94[br](1129103ns)]][[role green 1.00[br](103241ns)]][[role green 1.01[br](104450ns)]]] -[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role red 30.21[br](2093732ns)]][[role green 1.00[br](69316ns)]][[role blue 1.32[br](91168ns)]]] +[template table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_[] +[table:table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_ Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) +[[Expression[br]Text][boost 1.65][std::regex]] +[[[^\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](80801ns)]][[role red 6.82[br](551022ns)]]] +[[[^\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](19868ns)]][[role red 4.23[br](84068ns)]]] +[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](10508ns)]][[role blue 3.37[br](35378ns)]]] ] ] -[template table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[table:table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing simple Perl matches (platform = linux, compiler = GNU C++ version 5.1.0) -[[Expression[br]Text][std::regex][boost 1.59][boost::xpressive::cregex][PCRE-10.10]] -[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role blue 2.72[br](384ns)]][[role blue 2.85[br](402ns)]][[role green 1.00[br](141ns)]][[role blue 1.33[br](187ns)]]] -[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role red 19.85[br](2124ns)]][[role blue 2.68[br](287ns)]][[role green 1.00[br](107ns)]][[role blue 2.94[br](315ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role grey -]][[role blue 2.16[br](542ns)]][[role green 1.00[br](251ns)]][[role blue 1.25[br](315ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role grey -]][[role blue 2.22[br](554ns)]][[role green 1.00[br](250ns)]][[role blue 1.28[br](319ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role grey -]][[role blue 2.10[br](657ns)]][[role green 1.00[br](313ns)]][[role green 1.16[br](364ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role red 4.08[br](339ns)]][[role blue 2.51[br](208ns)]][[role green 1.00[br](83ns)]][[role blue 1.42[br](118ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role red 4.14[br](335ns)]][[role blue 2.49[br](202ns)]][[role green 1.00[br](81ns)]][[role blue 1.46[br](118ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role blue 3.17[br](254ns)]][[role blue 2.25[br](180ns)]][[role green 1.00[br](80ns)]][[role blue 1.32[br](106ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role blue 3.02[br](248ns)]][[role blue 2.52[br](207ns)]][[role green 1.00[br](82ns)]][[role green 1.18[br](97ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role blue 2.70[br](216ns)]][[role blue 2.25[br](180ns)]][[role green 1.00[br](80ns)]][[role green 1.18[br](94ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role blue 2.54[br](229ns)]][[role blue 2.39[br](215ns)]][[role green 1.00[br](90ns)]][[role green 1.16[br](104ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role blue 2.46[br](219ns)]][[role blue 2.39[br](213ns)]][[role green 1.00[br](89ns)]][[role green 1.18[br](105ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role blue 2.51[br](228ns)]][[role blue 2.31[br](210ns)]][[role green 1.00[br](91ns)]][[role green 1.12[br](102ns)]]] -[[[^abc][br][^abc]][[role blue 1.92[br](113ns)]][[role blue 2.12[br](125ns)]][[role green 1.07[br](63ns)]][[role green 1.00[br](59ns)]]] -] -] - -[template table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[table:table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 5.1.0) -[[Expression[br]Text][std::regex][boost 1.59][POSIX]] -[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role green 1.00[br](431ns)]][[role blue 1.25[br](537ns)]][[role blue 3.45[br](1486ns)]]] -[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role red 4.60[br](2203ns)]][[role green 1.00[br](479ns)]][[role red 12.80[br](6133ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role blue 1.28[br](869ns)]][[role green 1.00[br](681ns)]][[role blue 2.61[br](1775ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role green 1.11[br](752ns)]][[role green 1.00[br](675ns)]][[role blue 2.44[br](1644ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role blue 1.24[br](1116ns)]][[role green 1.00[br](899ns)]][[role blue 2.61[br](2342ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role blue 1.61[br](339ns)]][[role blue 1.76[br](370ns)]][[role green 1.00[br](210ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role blue 1.66[br](342ns)]][[role blue 1.79[br](368ns)]][[role green 1.00[br](206ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role blue 1.69[br](248ns)]][[role blue 3.70[br](544ns)]][[role green 1.00[br](147ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role blue 2.23[br](256ns)]][[role blue 2.63[br](303ns)]][[role green 1.00[br](115ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role blue 1.97[br](213ns)]][[role blue 2.70[br](292ns)]][[role green 1.00[br](108ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role blue 2.38[br](255ns)]][[role blue 3.31[br](354ns)]][[role green 1.00[br](107ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role blue 2.12[br](216ns)]][[role blue 2.90[br](296ns)]][[role green 1.00[br](102ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role blue 2.25[br](234ns)]][[role blue 2.89[br](301ns)]][[role green 1.00[br](104ns)]]] -[[[^abc][br][^abc]][[role blue 1.20[br](113ns)]][[role blue 2.38[br](224ns)]][[role green 1.00[br](94ns)]]] -] -] - -[template table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[table:table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) -[[Expression[br]Text][boost 1.60][PCRE-10.10][RE2][std::regex][boost::xpressive::cregex]] -[[[^(?i)\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 1.26[br](320274ns)]][[role green 1.00[br](253424ns)]][[role blue 1.45[br](366324ns)]][[role grey -]][[role blue 3.00[br](759495ns)]]] -[[[^(?i)\u005D+face\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>.\*?<\/font>][br]In file: ../../../libs/libraries.htm][[role blue 2.94[br](198426ns)]][[role blue 1.28[br](86670ns)]][[role green 1.00[br](67463ns)]][[role grey -]][[role blue 2.92[br](197323ns)]]] -[[[^(?i)\u005D\*>.\*?<\/h\u005B12345678\u005D>][br]In file: ../../../libs/libraries.htm][[role blue 2.42[br](196304ns)]][[role blue 1.26[br](102129ns)]][[role green 1.00[br](81160ns)]][[role grey -]][[role red 5.12[br](415932ns)]]] -[[[^(?i)\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 2.87[br](196348ns)]][[role blue 1.28[br](87365ns)]][[role green 1.00[br](68502ns)]][[role grey -]][[role blue 3.25[br](222612ns)]]] -[[[^(?i)

.\*?<\/p>][br]In file: ../../../libs/libraries.htm][[role blue 2.78[br](194346ns)]][[role blue 1.27[br](88709ns)]][[role green 1.00[br](70020ns)]][[role grey -]][[role red 4.03[br](282425ns)]]] -[[[^(\\w+)\\s\*(\\(\u005B\^()\u005D++(?:(?2)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))\\s\*(\\{\u005B\^{}\u005D++((?3)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\})][br]In file: boost/multiprecision/number.hpp][[role green 1.00[br](1094575ns)]][[role blue 2.87[br](3136734ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[[^(\^\u005B \\t\u005D\*\#(?:(?>\u005B\^\\\\\\n\u005D+)|\\\\(?>\\s\*\\n|.))\*)|][br]In file: boost/multiprecision/number.hpp][[role blue 1.92[br](11651545ns)]][[role green 1.00[br](6057879ns)]][[role grey -]][[role grey -]][[role blue 1.55[br](9388319ns)]]] -[[[^(template\u005B\u005B:space:\u005D\u005D\*<\u005B\^;:{\u005D+>\u005B\u005B:space:\u005D\u005D\*)?(class|struct)\u005B\u005B:space:\u005D\u005D\*(\\w+(\u005B \u005D\*\\(\u005B\^)\u005D\*\\))?\u005B\u0 ...][br]In file: boost/multiprecision/number.hpp][[role red 29.23[br](8736875ns)]][[role red 38.71[br](11569512ns)]][[role green 1.00[br](298862ns)]][[role red 995.92[br](297642713ns)]][[role red 27.63[br](8258368ns)]]] -[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role blue 1.60[br](153603ns)]][[role green 1.10[br](105220ns)]][[role blue 2.55[br](244839ns)]][[role red 8.53[br](819095ns)]][[role green 1.00[br](96081ns)]]] -[[[^\\w+\\s\*(\\(\u005B\^()\u005D++(?:(?1)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))][br]In file: boost/multiprecision/number.hpp][[role green 1.00[br](1099128ns)]][[role blue 1.66[br](1824126ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[[^\\{\u005B\^{}\u005D++((?0)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\}][br]In file: boost/multiprecision/number.hpp][[role blue 1.60[br](243611ns)]][[role green 1.00[br](152166ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("\u005B\^"\u005D+"|<\u005B\^>\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role blue 1.54[br](260929ns)]][[role green 1.18[br](198707ns)]][[role blue 1.81[br](305923ns)]][[role red 8.53[br](1440180ns)]][[role green 1.00[br](168902ns)]]] -[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("boost\/\u005B\^"\u005D+"|\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role blue 1.52[br](256685ns)]][[role green 1.17[br](198358ns)]][[role blue 1.80[br](303602ns)]][[role red 8.51[br](1438197ns)]][[role green 1.00[br](168968ns)]]] -] -] - -[template table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[table:table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) -[[Expression[br]Text][boost 1.60][std::regex]] -[[[^\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](1518659ns)]][[role red 7.17[br](10890189ns)]]] -[[[^\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](185869ns)]][[role blue 3.77[br](700484ns)]]] -[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](165840ns)]][[role red 4.95[br](820933ns)]]] -] -] - -[template table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[table:table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) -[[Expression[br]Text][boost 1.60][PCRE-10.10][RE2][std::regex][boost::xpressive::cregex]] -[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role blue 2.03[br](323ns)]][[role blue 1.25[br](198ns)]][[role green 1.00[br](159ns)]][[role red 20.73[br](3296ns)]][[role blue 1.38[br](220ns)]]] -[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role blue 1.71[br](257ns)]][[role blue 2.01[br](302ns)]][[role blue 2.38[br](357ns)]][[role red 30.81[br](4622ns)]][[role green 1.00[br](150ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role blue 2.66[br](404ns)]][[role blue 2.09[br](317ns)]][[role green 1.00[br](152ns)]][[role red 38.14[br](5798ns)]][[role blue 1.87[br](284ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role blue 2.90[br](406ns)]][[role blue 2.31[br](323ns)]][[role green 1.00[br](140ns)]][[role red 41.41[br](5797ns)]][[role blue 2.00[br](280ns)]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role blue 2.74[br](477ns)]][[role blue 2.17[br](378ns)]][[role green 1.00[br](174ns)]][[role red 38.15[br](6638ns)]][[role blue 2.20[br](382ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role blue 1.63[br](171ns)]][[role green 1.14[br](120ns)]][[role green 1.13[br](119ns)]][[role red 34.15[br](3586ns)]][[role green 1.00[br](105ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role blue 1.69[br](171ns)]][[role green 1.18[br](119ns)]][[role green 1.18[br](119ns)]][[role red 35.54[br](3590ns)]][[role green 1.00[br](101ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role blue 1.60[br](149ns)]][[role green 1.15[br](107ns)]][[role green 1.10[br](102ns)]][[role red 39.99[br](3719ns)]][[role green 1.00[br](93ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role blue 1.65[br](162ns)]][[role green 1.00[br](98ns)]][[role blue 1.31[br](128ns)]][[role red 16.57[br](1624ns)]][[role green 1.03[br](101ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role blue 1.58[br](153ns)]][[role green 1.00[br](97ns)]][[role green 1.19[br](115ns)]][[role red 16.54[br](1604ns)]][[role green 1.02[br](99ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role blue 1.57[br](170ns)]][[role green 1.00[br](108ns)]][[role green 1.10[br](119ns)]][[role red 21.83[br](2358ns)]][[role green 1.00[br](108ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role blue 1.50[br](159ns)]][[role green 1.01[br](107ns)]][[role green 1.05[br](111ns)]][[role red 17.67[br](1873ns)]][[role green 1.00[br](106ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role blue 1.53[br](164ns)]][[role green 1.00[br](107ns)]][[role green 1.07[br](115ns)]][[role red 18.05[br](1931ns)]][[role green 1.00[br](107ns)]]] -[[[^abc][br][^abc]][[role blue 2.10[br](128ns)]][[role green 1.00[br](61ns)]][[role blue 1.30[br](79ns)]][[role red 9.89[br](603ns)]][[role blue 1.25[br](76ns)]]] +[template table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_[] +[table:table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_ Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) +[[Expression[br]Text][boost 1.65][PCRE-10.10][RE2][std::regex][boost::xpressive::cregex]] +[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role blue 1.90[br](328ns)]][[role green 1.18[br](205ns)]][[role green 1.00[br](173ns)]][[role red 27.81[br](4811ns)]][[role blue 1.32[br](228ns)]]] +[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role blue 1.45[br](251ns)]][[role blue 1.73[br](300ns)]][[role blue 2.14[br](371ns)]][[role red 24.75[br](4281ns)]][[role green 1.00[br](173ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role blue 2.53[br](403ns)]][[role blue 2.13[br](338ns)]][[role green 1.00[br](159ns)]][[role red 34.16[br](5432ns)]][[role blue 1.86[br](295ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role blue 2.75[br](402ns)]][[role blue 2.34[br](342ns)]][[role green 1.00[br](146ns)]][[role red 40.78[br](5954ns)]][[role blue 2.01[br](294ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role blue 2.54[br](469ns)]][[role blue 2.16[br](399ns)]][[role green 1.00[br](185ns)]][[role red 44.27[br](8190ns)]][[role blue 2.04[br](377ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role blue 1.53[br](171ns)]][[role green 1.14[br](128ns)]][[role green 1.11[br](124ns)]][[role red 21.63[br](2422ns)]][[role green 1.00[br](112ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role blue 1.50[br](167ns)]][[role green 1.15[br](128ns)]][[role green 1.13[br](125ns)]][[role red 21.92[br](2433ns)]][[role green 1.00[br](111ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role blue 1.40[br](143ns)]][[role green 1.15[br](117ns)]][[role green 1.03[br](105ns)]][[role red 35.65[br](3636ns)]][[role green 1.00[br](102ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role blue 1.47[br](157ns)]][[role green 1.00[br](107ns)]][[role blue 1.27[br](136ns)]][[role red 16.75[br](1792ns)]][[role green 1.03[br](110ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role blue 1.39[br](145ns)]][[role green 1.00[br](104ns)]][[role green 1.13[br](117ns)]][[role red 16.90[br](1758ns)]][[role green 1.07[br](111ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role blue 1.44[br](164ns)]][[role green 1.00[br](114ns)]][[role green 1.10[br](125ns)]][[role red 15.61[br](1779ns)]][[role green 1.06[br](121ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role blue 1.36[br](152ns)]][[role green 1.00[br](112ns)]][[role green 1.04[br](117ns)]][[role red 15.86[br](1776ns)]][[role green 1.05[br](118ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role blue 1.40[br](158ns)]][[role green 1.00[br](113ns)]][[role green 1.10[br](124ns)]][[role red 15.86[br](1792ns)]][[role green 1.07[br](121ns)]]] +[[[^abc][br][^abc]][[role blue 2.01[br](141ns)]][[role green 1.00[br](70ns)]][[role green 1.17[br](82ns)]][[role red 8.24[br](577ns)]][[role green 1.19[br](83ns)]]] ] ] -[template table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[table:table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) -[[Expression[br]Text][boost 1.60][std::regex]] -[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role green 1.00[br](490ns)]][[role red 6.88[br](3372ns)]]] -[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role green 1.00[br](554ns)]][[role grey -]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role green 1.00[br](614ns)]][[role grey -]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role green 1.00[br](596ns)]][[role grey -]]] -[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role green 1.00[br](748ns)]][[role grey -]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role green 1.00[br](372ns)]][[role red 9.77[br](3635ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role green 1.00[br](367ns)]][[role red 9.84[br](3613ns)]]] -[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role green 1.00[br](444ns)]][[role red 8.45[br](3754ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role green 1.00[br](325ns)]][[role red 5.19[br](1687ns)]]] -[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role green 1.00[br](308ns)]][[role red 5.39[br](1660ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role green 1.00[br](356ns)]][[role red 6.78[br](2415ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role green 1.00[br](315ns)]][[role red 6.14[br](1935ns)]]] -[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role green 1.00[br](346ns)]][[role red 5.68[br](1967ns)]]] -[[[^abc][br][^abc]][[role green 1.00[br](287ns)]][[role blue 2.32[br](667ns)]]] +[template table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_[] +[table:table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_ Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) +[[Expression[br]Text][boost 1.65][std::regex]] +[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role green 1.00[br](554ns)]][[role red 11.06[br](6127ns)]]] +[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role green 1.00[br](679ns)]][[role grey -]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role green 1.00[br](1444ns)]][[role grey -]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role green 1.00[br](1397ns)]][[role grey -]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role green 1.00[br](1588ns)]][[role grey -]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role green 1.00[br](466ns)]][[role red 11.18[br](5208ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role green 1.00[br](519ns)]][[role red 9.79[br](5083ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role green 1.00[br](619ns)]][[role red 7.64[br](4730ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role green 1.00[br](449ns)]][[role red 5.23[br](2347ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role green 1.00[br](362ns)]][[role red 6.48[br](2344ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role green 1.00[br](1090ns)]][[role blue 2.48[br](2699ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role green 1.00[br](348ns)]][[role red 6.57[br](2288ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role green 1.00[br](358ns)]][[role red 6.41[br](2296ns)]]] +[[[^abc][br][^abc]][[role green 1.00[br](375ns)]][[role blue 2.30[br](864ns)]]] ] ] [/sections:] -[template section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[section:section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing Perl searches (platform = linux, compiler = GNU C++ version 5.1.0)] -[table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_] +[template section_id3752650613[] +[section:section_id3752650613 Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)] +[table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] [endsect] ] -[template section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[section:section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 5.1.0)] -[table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_] +[template section_id3258595385[] +[section:section_id3258595385 Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)] +[table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] [endsect] ] -[template section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[section:section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing simple Perl matches (platform = linux, compiler = GNU C++ version 5.1.0)] -[table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_] -[endsect] -] - -[template section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_[] -[section:section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_ Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 5.1.0)] -[table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_] -[endsect] -] - -[template section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[section:section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)] -[table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[endsect] -] - -[template section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[section:section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)] -[table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[endsect] -] - -[template section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[section:section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)] -[table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] +[template section_id4128344975[] +[section:section_id4128344975 Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)] +[table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] [endsect] ] -[template section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_[] -[section:section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_ Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)] -[table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] +[template section_id3141719723[] +[section:section_id3141719723 Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)] +[table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] [endsect] ] [template performance_all_sections[] -[section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_] -[section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_] -[section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_] -[section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_] +[section_id3141719723] +[section_id3258595385] +[section_id3752650613] +[section_id4128344975] ] [template performance_all_tables[] -[table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_] -[table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_] -[table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_] -[table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_] -[table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_] +[table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] ] diff --git a/performance/table_helper.cpp b/performance/table_helper.cpp index 5197c203..986c2189 100644 --- a/performance/table_helper.cpp +++ b/performance/table_helper.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -28,6 +29,12 @@ inline std::string sanitize_string(const std::string& s) return result; } +inline std::string sanitize_short_string(const std::string& s) +{ + unsigned id = boost::hash()(s); + return sanitize_string("id" + boost::lexical_cast(id)); +} + std::string format_precision(double val, int digits) { std::stringstream ss; @@ -320,7 +327,7 @@ void add_cell(boost::intmax_t val, const std::string& table_name, const std::str // // Add a section for this table as well: // - std::string section_id = "section_" + sanitize_string(table_name); + std::string section_id = "section_" + sanitize_short_string(table_name); if(content.find(section_id + "[]") == std::string::npos) { std::string new_section = "\n[template " + section_id + "[]\n[section:" + section_id + " " + table_name + "]\n[" + table_id + "]\n[endsect]\n]\n"; From d96012b04de1c6edf2574c731588ad3d1909ddd9 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Tue, 1 Aug 2017 13:16:26 +0100 Subject: [PATCH 18/27] Update linux performance results --- performance/Jamfile.v2 | 6 +- performance/doc/performance_tables.qbk | 100 +++++++++++++++++++++++++ 2 files changed, 103 insertions(+), 3 deletions(-) diff --git a/performance/Jamfile.v2 b/performance/Jamfile.v2 index 48154c91..63dfee34 100644 --- a/performance/Jamfile.v2 +++ b/performance/Jamfile.v2 @@ -18,10 +18,10 @@ using auto-index ; path-constant images_location : html ; path-constant here : . ; -lib pcre2 ; +lib pcre2-8 ; lib re2 ; -exe has_pcre2 : config/pcre.cpp pcre2 : third_party third_party third_party release ; +exe has_pcre2 : config/pcre.cpp pcre2-8 : third_party third_party third_party release ; explicit has_pcre2 ; exe has_posix : config/posix.cpp : release ; explicit has_posix ; @@ -31,7 +31,7 @@ explicit has_re2 ; run [ glob *.cpp ] /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem : : : release - [ check-target-builds has_pcre2 : TEST_PCRE2 pcre2 ] + [ check-target-builds has_pcre2 : TEST_PCRE2 pcre2-8 ] [ check-target-builds has_posix : TEST_POSIX ] [ check-target-builds has_re2 : TEST_RE2 re2 third_party third_party third_party ] third_party diff --git a/performance/doc/performance_tables.qbk b/performance/doc/performance_tables.qbk index 81a1a1d3..af7e0d56 100644 --- a/performance/doc/performance_tables.qbk +++ b/performance/doc/performance_tables.qbk @@ -1,6 +1,74 @@ [/tables:] +[template table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_6_3_0_[] +[table:table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_6_3_0_ Testing Perl searches (platform = linux, compiler = GNU C++ version 6.3.0) +[[Expression[br]Text][boost 1.65][std::regex][boost::xpressive::cregex][PCRE-10.21]] +[[[^(?i)\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 1.63[br](28838ns)]][[role grey -]][[role blue 1.67[br](29436ns)]][[role green 1.00[br](17678ns)]]] +[[[^(?i)\u005D+face\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>.\*?<\/font>][br]In file: ../../../libs/libraries.htm][[role blue 2.78[br](19366ns)]][[role grey -]][[role blue 1.50[br](10471ns)]][[role green 1.00[br](6963ns)]]] +[[[^(?i)\u005D\*>.\*?<\/h\u005B12345678\u005D>][br]In file: ../../../libs/libraries.htm][[role blue 1.95[br](17081ns)]][[role grey -]][[role blue 2.18[br](19086ns)]][[role green 1.00[br](8745ns)]]] +[[[^(?i)\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role blue 2.61[br](18132ns)]][[role grey -]][[role blue 1.61[br](11211ns)]][[role green 1.00[br](6952ns)]]] +[[[^(?i)

.\*?<\/p>][br]In file: ../../../libs/libraries.htm][[role blue 1.69[br](17517ns)]][[role grey -]][[role blue 1.51[br](15645ns)]][[role green 1.00[br](10345ns)]]] +[[[^(\\w+)\\s\*(\\(\u005B\^()\u005D++(?:(?2)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))\\s\*(\\{\u005B\^{}\u005D++((?3)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\})][br]In file: boost/multiprecision/number.hpp][[role green 1.00[br](1500580ns)]][[role grey -]][[role grey -]][[role blue 2.84[br](4260530ns)]]] +[[[^(\^\u005B \\t\u005D\*\#(?:(?>\u005B\^\\\\\\n\u005D+)|\\\\(?>\\s\*\\n|.))\*)|][br]In file: boost/multiprecision/number.hpp][[role blue 1.64[br](14163004ns)]][[role grey -]][[role green 1.00[br](8632111ns)]][[role green 1.03[br](8907897ns)]]] +[[[^(template\u005B\u005B:space:\u005D\u005D\*<\u005B\^;:{\u005D+>\u005B\u005B:space:\u005D\u005D\*)?(class|struct)\u005B\u005B:space:\u005D\u005D\*(\\w+(\u005B \u005D\*\\(\u005B\^)\u005D\*\\))?\u005B\u0 ...][br]In file: boost/multiprecision/number.hpp][[role blue 1.72[br](13046296ns)]][[role blue 3.61[br](27370747ns)]][[role green 1.00[br](7585304ns)]][[role blue 1.98[br](14992880ns)]]] +[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](5021ns)]][[role red 36.75[br](184532ns)]][[role blue 1.40[br](7046ns)]][[role green 1.19[br](5966ns)]]] +[[[^\\w+\\s\*(\\(\u005B\^()\u005D++(?:(?1)\u005B\^()\u005D++)\*+\u005B\^)\u005D\*\\))][br]In file: boost/multiprecision/number.hpp][[role green 1.00[br](1551419ns)]][[role grey -]][[role grey -]][[role blue 1.58[br](2444759ns)]]] +[[[^\\{\u005B\^{}\u005D++((?0)\u005B\^{}\u005D++)\*+\u005B\^}\u005D\*+\\}][br]In file: boost/multiprecision/number.hpp][[role blue 1.31[br](200846ns)]][[role grey -]][[role grey -]][[role green 1.00[br](153117ns)]]] +[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("\u005B\^"\u005D+"|<\u005B\^>\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role blue 1.46[br](234901ns)]][[role red 11.35[br](1821532ns)]][[role green 1.00[br](160446ns)]][[role blue 1.35[br](215802ns)]]] +[[[^\^\u005B \u005D\*\#\u005B \u005D\*include\u005B \u005D+("boost\/\u005B\^"\u005D+"|\u005D+>)][br]In file: boost/multiprecision/number.hpp][[role blue 1.41[br](234377ns)]][[role red 11.47[br](1903901ns)]][[role green 1.00[br](165921ns)]][[role blue 1.31[br](217806ns)]]] +] +] + +[template table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_6_3_0_[] +[table:table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_6_3_0_ Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 6.3.0) +[[Expression[br]Text][boost 1.65][std::regex][POSIX]] +[[[^\u005D+href\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](107026ns)]][[role blue 1.44[br](154551ns)]][[role blue 1.64[br](175184ns)]]] +[[[^\u005D+src\=("\u005B\^"\u005D\*"|\u005B\^\u005B:space:\u005D\u005D+)\u005B\^>\u005D\*>][br]In file: ../../../libs/libraries.htm][[role green 1.00[br](15420ns)]][[role red 6.89[br](106275ns)]][[role blue 1.59[br](24567ns)]]] +[[[^Beman|John|Dave][br]In file: ../../../libs/libraries.htm][[role green 1.03[br](5399ns)]][[role red 36.27[br](190577ns)]][[role green 1.00[br](5254ns)]]] +] +] + +[template table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_6_3_0_[] +[table:table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_6_3_0_ Testing simple Perl matches (platform = linux, compiler = GNU C++ version 6.3.0) +[[Expression[br]Text][boost 1.65][std::regex][boost::xpressive::cregex][PCRE-10.21]] +[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role blue 2.65[br](506ns)]][[role blue 2.86[br](546ns)]][[role green 1.00[br](191ns)]][[role blue 1.37[br](262ns)]]] +[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role blue 2.52[br](353ns)]][[role red 20.99[br](2939ns)]][[role green 1.00[br](140ns)]][[role blue 3.50[br](490ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role blue 1.98[br](681ns)]][[role grey -]][[role green 1.00[br](344ns)]][[role blue 1.32[br](454ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role blue 2.06[br](695ns)]][[role grey -]][[role green 1.00[br](337ns)]][[role blue 1.34[br](451ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role blue 1.93[br](821ns)]][[role grey -]][[role green 1.00[br](425ns)]][[role blue 1.24[br](526ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role blue 2.34[br](243ns)]][[role red 4.45[br](463ns)]][[role green 1.00[br](104ns)]][[role blue 1.62[br](168ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role blue 2.33[br](245ns)]][[role red 4.39[br](461ns)]][[role green 1.00[br](105ns)]][[role blue 1.60[br](168ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role blue 2.08[br](208ns)]][[role blue 3.31[br](331ns)]][[role green 1.00[br](100ns)]][[role blue 1.52[br](152ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role blue 2.28[br](237ns)]][[role blue 3.39[br](353ns)]][[role green 1.00[br](104ns)]][[role green 1.18[br](123ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role blue 2.12[br](216ns)]][[role blue 3.02[br](308ns)]][[role green 1.00[br](102ns)]][[role green 1.19[br](121ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role blue 2.12[br](257ns)]][[role blue 2.66[br](322ns)]][[role green 1.00[br](121ns)]][[role green 1.17[br](142ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role blue 2.00[br](230ns)]][[role blue 2.65[br](305ns)]][[role green 1.00[br](115ns)]][[role blue 1.22[br](140ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role blue 2.05[br](244ns)]][[role blue 2.81[br](334ns)]][[role green 1.00[br](119ns)]][[role blue 1.22[br](145ns)]]] +[[[^abc][br][^abc]][[role blue 1.65[br](135ns)]][[role blue 1.83[br](150ns)]][[role green 1.00[br](82ns)]][[role green 1.02[br](84ns)]]] +] +] + +[template table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_6_3_0_[] +[table:table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_6_3_0_ Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 6.3.0) +[[Expression[br]Text][boost 1.65][std::regex][POSIX]] +[[[^(\u005B\u005B:digit:\u005D\u005D{4}\u005B- \u005D){3}\u005B\u005B:digit:\u005D\u005D{3,4}][br][^1234-5678-1234-456]][[role green 1.11[br](669ns)]][[role green 1.00[br](603ns)]][[role blue 3.70[br](2234ns)]]] +[[[^\^(\u005B0-9\u005D+)(\\-| |\$)(.\*)\$][br][^100- this is a line of ftp response which contains a message string]][[role green 1.00[br](781ns)]][[role red 4.52[br](3530ns)]][[role red 12.72[br](9933ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^bob.smith\@foo.tv]][[role green 1.00[br](937ns)]][[role blue 1.26[br](1184ns)]][[role blue 3.06[br](2864ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^foo12\@foo.edu]][[role green 1.00[br](892ns)]][[role blue 1.29[br](1150ns)]][[role blue 2.95[br](2628ns)]]] +[[[^\^(\u005Ba-zA-Z0-9\_\\-\\.\u005D+)\@((\\\u005B\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.\u005B0-9\u005D{1,3}\\.)|((\u005Ba-zA-Z0-9\\-\u005D+\\.)+))(\u005Ba-zA-Z\u005D{2,4}|\u005B0-9\u005D{1,3})(\\ ...][br][^john\@johnmaddock.co.uk]][[role green 1.00[br](1160ns)]][[role blue 1.31[br](1517ns)]][[role blue 3.29[br](3818ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^+3.14159]][[role blue 1.58[br](485ns)]][[role blue 1.48[br](455ns)]][[role green 1.00[br](307ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^-3.14159]][[role blue 1.50[br](466ns)]][[role blue 1.50[br](464ns)]][[role green 1.00[br](310ns)]]] +[[[^\^\u005B-+\u005D?\u005B\u005B:digit:\u005D\u005D\*\\.?\u005B\u005B:digit:\u005D\u005D\*\$][br][^123]][[role blue 3.10[br](666ns)]][[role blue 1.57[br](338ns)]][[role green 1.00[br](215ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^12\/12\/2001]][[role blue 2.18[br](373ns)]][[role blue 2.10[br](359ns)]][[role green 1.00[br](171ns)]]] +[[[^\^\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{1,2}\/\u005B\u005B:digit:\u005D\u005D{4}\$][br][^4\/1\/2001]][[role blue 2.27[br](363ns)]][[role blue 1.93[br](309ns)]][[role green 1.00[br](160ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^EH10 2QQ]][[role blue 2.90[br](473ns)]][[role blue 2.19[br](357ns)]][[role green 1.00[br](163ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^G1 1AA]][[role blue 2.56[br](386ns)]][[role blue 1.83[br](277ns)]][[role green 1.00[br](151ns)]]] +[[[^\^\u005Ba-zA-Z\u005D{1,2}\u005B0-9\u005D\u005B0-9A-Za-z\u005D{0,1} {0,1}\u005B0-9\u005D\u005BA-Za-z\u005D{2}\$][br][^SW1 1ZZ]][[role blue 2.46[br](381ns)]][[role blue 2.14[br](331ns)]][[role green 1.00[br](155ns)]]] +[[[^abc][br][^abc]][[role blue 2.35[br](324ns)]][[role green 1.11[br](153ns)]][[role green 1.00[br](138ns)]]] +] +] + [template table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_[] [table:table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_ Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) [[Expression[br]Text][boost 1.65][PCRE-10.10][RE2][std::regex][boost::xpressive::cregex]] @@ -72,6 +140,30 @@ [/sections:] +[template section_id1675827111[] +[section:section_id1675827111 Testing Perl searches (platform = linux, compiler = GNU C++ version 6.3.0)] +[table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_6_3_0_] +[endsect] +] + +[template section_id4148872883[] +[section:section_id4148872883 Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 6.3.0)] +[table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_6_3_0_] +[endsect] +] + +[template section_id3261825021[] +[section:section_id3261825021 Testing simple Perl matches (platform = linux, compiler = GNU C++ version 6.3.0)] +[table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_6_3_0_] +[endsect] +] + +[template section_id1378460593[] +[section:section_id1378460593 Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 6.3.0)] +[table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_6_3_0_] +[endsect] +] + [template section_id3752650613[] [section:section_id3752650613 Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1)] [table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] @@ -98,15 +190,23 @@ ] [template performance_all_sections[] +[section_id1378460593] +[section_id1675827111] [section_id3141719723] [section_id3258595385] +[section_id3261825021] [section_id3752650613] [section_id4128344975] +[section_id4148872883] ] [template performance_all_tables[] [table_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_6_3_0_] [table_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_6_3_0_] [table_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_6_3_0_] [table_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_1_] +[table_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_6_3_0_] ] From 4828a7f94d9fdee15a296826ec47ffbef317d5d7 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 1 Aug 2017 18:01:46 +0100 Subject: [PATCH 19/27] Regenerate documentation with shorter path names. Fixes: https://svn.boost.org/trac10/ticket/13001 --- doc/html/boost_regex/background.html | 80 ++++++++ .../acknowledgements.html | 8 +- .../examples.html | 21 +- .../faq.html | 8 +- .../futher.html | 10 +- .../headers.html | 10 +- .../history.html | 102 +++++----- .../locale.html | 26 +-- .../performance.html | 50 ++--- .../performance/section_id1378460593.html} | 108 +++++----- .../performance/section_id1675827111.html} | 184 +++++++++--------- .../performance/section_id3141719723.html} | 70 +++---- .../performance/section_id3258595385.html} | 34 ++-- .../performance/section_id3261825021.html} | 156 +++++++-------- .../performance/section_id3752650613.html} | 120 ++++++------ .../performance/section_id4128344975.html} | 162 +++++++-------- .../performance/section_id4148872883.html} | 42 ++-- .../redist.html | 8 +- .../standards.html | 31 ++- .../thread_safety.html | 17 +- .../boost_regex/background_information.html | 83 -------- doc/html/boost_regex/install.html | 6 +- ...roduction_and_overview.html => intro.html} | 7 +- doc/html/boost_regex/partial_matches.html | 4 +- doc/html/boost_regex/ref.html | 18 +- .../ref/concepts/iterator_concepts.html | 6 +- ...ecated_interfaces.html => deprecated.html} | 19 +- .../old_regex.html | 12 +- .../regex_format.html | 14 +- .../regex_grep.html | 9 +- .../regex_split.html | 8 +- .../{internal_details.html => internals.html} | 13 +- .../uni_iter.html | 21 +- doc/html/boost_regex/unicode.html | 6 +- doc/html/index.html | 92 ++++----- doc/introduction.qbk | 2 +- doc/regex.qbk | 6 +- doc/thread_safety.qbk | 2 +- 38 files changed, 783 insertions(+), 792 deletions(-) create mode 100644 doc/html/boost_regex/background.html rename doc/html/boost_regex/{background_information => background}/acknowledgements.html (83%) rename doc/html/boost_regex/{background_information => background}/examples.html (86%) rename doc/html/boost_regex/{background_information => background}/faq.html (92%) rename doc/html/boost_regex/{background_information => background}/futher.html (80%) rename doc/html/boost_regex/{background_information => background}/headers.html (72%) rename doc/html/boost_regex/{background_information => background}/history.html (77%) rename doc/html/boost_regex/{background_information => background}/locale.html (95%) rename doc/html/boost_regex/{background_information => background}/performance.html (52%) rename doc/html/boost_regex/{background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html => background/performance/section_id1378460593.html} (64%) rename doc/html/boost_regex/{background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html => background/performance/section_id1675827111.html} (67%) rename doc/html/boost_regex/{background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html => background/performance/section_id3141719723.html} (67%) rename doc/html/boost_regex/{background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html => background/performance/section_id3258595385.html} (54%) rename doc/html/boost_regex/{background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html => background/performance/section_id3261825021.html} (63%) rename doc/html/boost_regex/{background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html => background/performance/section_id3752650613.html} (68%) rename doc/html/boost_regex/{background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html => background/performance/section_id4128344975.html} (62%) rename doc/html/boost_regex/{background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html => background/performance/section_id4148872883.html} (55%) rename doc/html/boost_regex/{background_information => background}/redist.html (78%) rename doc/html/boost_regex/{background_information => background}/standards.html (82%) rename doc/html/boost_regex/{background_information => background}/thread_safety.html (80%) delete mode 100644 doc/html/boost_regex/background_information.html rename doc/html/boost_regex/{introduction_and_overview.html => intro.html} (97%) rename doc/html/boost_regex/ref/{deprecated_interfaces.html => deprecated.html} (72%) rename doc/html/boost_regex/ref/{deprecated_interfaces => deprecated}/old_regex.html (98%) rename doc/html/boost_regex/ref/{deprecated_interfaces => deprecated}/regex_format.html (86%) rename doc/html/boost_regex/ref/{deprecated_interfaces => deprecated}/regex_grep.html (98%) rename doc/html/boost_regex/ref/{deprecated_interfaces => deprecated}/regex_split.html (95%) rename doc/html/boost_regex/ref/{internal_details.html => internals.html} (57%) rename doc/html/boost_regex/ref/{internal_details => internals}/uni_iter.html (89%) diff --git a/doc/html/boost_regex/background.html b/doc/html/boost_regex/background.html new file mode 100644 index 00000000..997628ff --- /dev/null +++ b/doc/html/boost_regex/background.html @@ -0,0 +1,80 @@ + + + +Background Information + + + + + + + + + + + + + + + +
Boost C++ LibrariesHomeLibrariesPeopleFAQMore
+


+
+PrevUpHomeNext +
+ + + + +
+
+
+PrevUpHomeNext +
+ + diff --git a/doc/html/boost_regex/background_information/acknowledgements.html b/doc/html/boost_regex/background/acknowledgements.html similarity index 83% rename from doc/html/boost_regex/background_information/acknowledgements.html rename to doc/html/boost_regex/background/acknowledgements.html index 20579eea..9d8c6621 100644 --- a/doc/html/boost_regex/background_information/acknowledgements.html +++ b/doc/html/boost_regex/background/acknowledgements.html @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@
-PrevUpHomeNext +PrevUpHomeNext

The author can be contacted at john - at - johnmaddock.co.uk; the home page @@ -81,7 +81,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/boost_regex/background_information/examples.html b/doc/html/boost_regex/background/examples.html similarity index 86% rename from doc/html/boost_regex/background_information/examples.html rename to doc/html/boost_regex/background/examples.html index 26da04f5..fec2107f 100644 --- a/doc/html/boost_regex/background_information/examples.html +++ b/doc/html/boost_regex/background/examples.html @@ -5,7 +5,7 @@ - + @@ -20,16 +20,15 @@
-PrevUpHomeNext +PrevUpHomeNext
- - Test + + Test Programs

@@ -151,8 +150,8 @@ Files: captures_test.cpp.

- - Example + + Example programs

@@ -177,8 +176,8 @@ Files: regex_timer.cpp.

- - Code + + Code snippets

@@ -269,7 +268,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/boost_regex/background_information/faq.html b/doc/html/boost_regex/background/faq.html similarity index 92% rename from doc/html/boost_regex/background_information/faq.html rename to doc/html/boost_regex/background/faq.html index edcf2a1a..620cecd0 100644 --- a/doc/html/boost_regex/background_information/faq.html +++ b/doc/html/boost_regex/background/faq.html @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@
-PrevUpHomeNext +PrevUpHomeNext

-FAQ +FAQ

Q. I can't get regex++ to work with escape @@ -149,7 +149,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/boost_regex/background_information/futher.html b/doc/html/boost_regex/background/futher.html similarity index 80% rename from doc/html/boost_regex/background_information/futher.html rename to doc/html/boost_regex/background/futher.html index dcdda55f..5212784c 100644 --- a/doc/html/boost_regex/background_information/futher.html +++ b/doc/html/boost_regex/background/futher.html @@ -5,7 +5,7 @@ - + @@ -20,12 +20,12 @@
-PrevUpHomeNext +PrevUpHomeNext

The main Perl regular expression tutorial can be found here, @@ -70,7 +70,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/boost_regex/background_information/headers.html b/doc/html/boost_regex/background/headers.html similarity index 72% rename from doc/html/boost_regex/background_information/headers.html rename to doc/html/boost_regex/background/headers.html index 6f52503f..caa5646b 100644 --- a/doc/html/boost_regex/background_information/headers.html +++ b/doc/html/boost_regex/background/headers.html @@ -5,8 +5,8 @@ - - + + @@ -20,11 +20,11 @@
-PrevUpHomeNext +PrevUpHomeNext

There are two main headers used by this library: <boost/regex.hpp> @@ -48,7 +48,7 @@


-PrevUpHomeNext +PrevUpHomeNext
diff --git a/doc/html/boost_regex/background_information/history.html b/doc/html/boost_regex/background/history.html similarity index 77% rename from doc/html/boost_regex/background_information/history.html rename to doc/html/boost_regex/background/history.html index aff74cff..f65dc59f 100644 --- a/doc/html/boost_regex/background_information/history.html +++ b/doc/html/boost_regex/background/history.html @@ -5,7 +5,7 @@ - + @@ -19,11 +19,11 @@
-PrevUpHome +PrevUpHome

New issues should be submitted at svn.boost.org @@ -36,8 +36,8 @@ All issues including closed ones can be viewed here.

- - Boost.Regex-5.1.3 + + Boost.Regex-5.1.3 (Boost-1.64.0)
    @@ -50,8 +50,8 @@
- - Boost.Regex-5.1.2 + + Boost.Regex-5.1.2 (Boost-1.62.0)
    @@ -71,16 +71,16 @@
- - Boost.Regex-5.1.1 + + Boost.Regex-5.1.1 (Boost-1.61.0)
  • Change to lockfree implementation of memory cache, see PR#23.
- - Boost.Regex-5.1.0 + + Boost.Regex-5.1.0 (Boost-1.60.0)
    @@ -102,8 +102,8 @@
- - Boost.Regex-5.0.1 + + Boost.Regex-5.0.1 (Boost-1.58.0)
    @@ -135,8 +135,8 @@
- - Boost.Regex-5.0.0 + + Boost.Regex-5.0.0 (Boost-1.56.0)
    @@ -168,23 +168,23 @@
- - Boost-1.54 + + Boost-1.54

Fixed issue #8569.

- - Boost-1.53 + + Boost-1.53

Fixed Issues: #7744, #7644.

- - Boost-1.51 + + Boost-1.51

Fixed issues: #589, @@ -193,8 +193,8 @@ #6346.

- - Boost-1.50 + + Boost-1.50

Fixed issue with (?!) not being @@ -202,8 +202,8 @@ expression.

- - Boost-1.48 + + Boost-1.48

Fixed issues: #698, @@ -212,8 +212,9 @@ #5736.

- - Boost 1.47 + + Boost + 1.47

Fixed issues: #5223, @@ -224,8 +225,9 @@ #5504.

- - Boost 1.44 + + Boost + 1.44

Fixed issues: #4309, @@ -242,8 +244,9 @@ #3890

- - Boost 1.42 + + Boost + 1.42
  • @@ -270,16 +273,18 @@
- - Boost 1.40 + + Boost + 1.40
  • Added support for many Perl 5.10 syntax elements including named sub-expressions, branch resets and recursive regular expressions.
- - Boost 1.38 + + Boost + 1.38
  • @@ -305,8 +310,9 @@
- - Boost 1.34 + + Boost + 1.34
  • @@ -327,8 +333,9 @@
- - Boost 1.33.1 + + Boost + 1.33.1
  • @@ -396,8 +403,9 @@
- - Boost 1.33.0 + + Boost + 1.33.0
  • @@ -450,15 +458,17 @@
- - Boost 1.32.1 + + Boost + 1.32.1
  • Fixed bug in partial matches of bounded repeats of '.'.
- - Boost 1.31.0 + + Boost + 1.31.0
  • @@ -502,7 +512,7 @@
    -PrevUpHome +PrevUpHome
    diff --git a/doc/html/boost_regex/background_information/locale.html b/doc/html/boost_regex/background/locale.html similarity index 95% rename from doc/html/boost_regex/background_information/locale.html rename to doc/html/boost_regex/background/locale.html index e3f7e917..97d08859 100644 --- a/doc/html/boost_regex/background_information/locale.html +++ b/doc/html/boost_regex/background/locale.html @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@
    -PrevUpHomeNext +PrevUpHomeNext

    Boost.Regex provides extensive support for run-time localization, the localization @@ -58,9 +58,9 @@ There are three separate localization mechanisms supported by Boost.Regex:

    - - Win32 - localization model. + + Win32 localization + model.

    This is the default model when the library is compiled under Win32, and is @@ -90,8 +90,8 @@ are treated as "unknown" graphic characters.

    - - C + + C localization model.

    @@ -114,8 +114,8 @@ libraries including version 1 of this library.

    - - C++ + + C++ localization model.

    @@ -151,8 +151,8 @@ in your code. The best way to ensure this is to add the #define to <boost/regex/user.hpp>.

    - - Providing + + Providing a message catalogue

    @@ -1755,7 +1755,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance.html b/doc/html/boost_regex/background/performance.html similarity index 52% rename from doc/html/boost_regex/background_information/performance.html rename to doc/html/boost_regex/background/performance.html index bdaa1b0d..29d710d1 100644 --- a/doc/html/boost_regex/background_information/performance.html +++ b/doc/html/boost_regex/background/performance.html @@ -5,9 +5,9 @@ - + - + @@ -20,34 +20,34 @@

    -PrevUpHomeNext +PrevUpHomeNext

    The performance of Boost.Regex in both recursive and non-recursive modes @@ -67,7 +67,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background/performance/section_id1378460593.html similarity index 64% rename from doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html rename to doc/html/boost_regex/background/performance/section_id1378460593.html index a928332b..f4389702 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html +++ b/doc/html/boost_regex/background/performance/section_id1378460593.html @@ -1,13 +1,13 @@ -Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 5.1.0) +Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 6.3.0) - - + + @@ -20,19 +20,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 15. Testing simple leftmost-longest matches (platform = linux, compiler - = GNU C++ version 5.1.0)

    +

    Table 8. Testing simple leftmost-longest matches (platform = linux, compiler + = GNU C++ version 6.3.0)

    + = GNU C++ version 6.3.0)"> @@ -47,12 +47,12 @@ @@ -94,17 +94,17 @@ @@ -117,17 +117,17 @@ @@ -140,17 +140,17 @@ @@ -163,17 +163,17 @@ @@ -186,17 +186,17 @@ @@ -209,17 +209,17 @@ @@ -232,17 +232,17 @@ @@ -255,17 +255,17 @@ @@ -278,17 +278,17 @@ @@ -301,17 +301,17 @@ @@ -324,17 +324,17 @@ @@ -347,17 +347,17 @@ @@ -369,17 +369,17 @@ @@ -398,7 +398,7 @@

    - std::regex + boost 1.65

    - boost 1.59 + std::regex

    @@ -71,17 +71,17 @@

    - 1.00
    (431ns)
    + 1.11
    (669ns)

    - 1.25
    (537ns)
    + 1.00
    (603ns)

    - 3.45
    (1486ns)
    + 3.70
    (2234ns)

    - 4.60
    (2203ns)
    + 1.00
    (781ns)

    - 1.00
    (479ns)
    + 4.52
    (3530ns)

    - 12.80
    (6133ns)
    + 12.72
    (9933ns)

    - 1.28
    (869ns)
    + 1.00
    (937ns)

    - 1.00
    (681ns)
    + 1.26
    (1184ns)

    - 2.61
    (1775ns)
    + 3.06
    (2864ns)

    - 1.11
    (752ns)
    + 1.00
    (892ns)

    - 1.00
    (675ns)
    + 1.29
    (1150ns)

    - 2.44
    (1644ns)
    + 2.95
    (2628ns)

    - 1.24
    (1116ns)
    + 1.00
    (1160ns)

    - 1.00
    (899ns)
    + 1.31
    (1517ns)

    - 2.61
    (2342ns)
    + 3.29
    (3818ns)

    - 1.61
    (339ns)
    + 1.58
    (485ns)

    - 1.76
    (370ns)
    + 1.48
    (455ns)

    - 1.00
    (210ns)
    + 1.00
    (307ns)

    - 1.66
    (342ns)
    + 1.50
    (466ns)

    - 1.79
    (368ns)
    + 1.50
    (464ns)

    - 1.00
    (206ns)
    + 1.00
    (310ns)

    - 1.69
    (248ns)
    + 3.10
    (666ns)

    - 3.70
    (544ns)
    + 1.57
    (338ns)

    - 1.00
    (147ns)
    + 1.00
    (215ns)

    - 2.23
    (256ns)
    + 2.18
    (373ns)

    - 2.63
    (303ns)
    + 2.10
    (359ns)

    - 1.00
    (115ns)
    + 1.00
    (171ns)

    - 1.97
    (213ns)
    + 2.27
    (363ns)

    - 2.70
    (292ns)
    + 1.93
    (309ns)

    - 1.00
    (108ns)
    + 1.00
    (160ns)

    - 2.38
    (255ns)
    + 2.90
    (473ns)

    - 3.31
    (354ns)
    + 2.19
    (357ns)

    - 1.00
    (107ns)
    + 1.00
    (163ns)

    - 2.12
    (216ns)
    + 2.56
    (386ns)

    - 2.90
    (296ns)
    + 1.83
    (277ns)

    - 1.00
    (102ns)
    + 1.00
    (151ns)

    - 2.25
    (234ns)
    + 2.46
    (381ns)

    - 2.89
    (301ns)
    + 2.14
    (331ns)

    - 1.00
    (104ns)
    + 1.00
    (155ns)

    - 1.20
    (113ns)
    + 2.35
    (324ns)

    - 2.38
    (224ns)
    + 1.11
    (153ns)

    - 1.00
    (94ns)
    + 1.00
    (138ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background/performance/section_id1675827111.html similarity index 67% rename from doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html rename to doc/html/boost_regex/background/performance/section_id1675827111.html index 0ecd8788..b98f7d53 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html +++ b/doc/html/boost_regex/background/performance/section_id1675827111.html @@ -1,13 +1,13 @@ -Testing Perl searches (platform = linux, compiler = GNU C++ version 5.1.0) +Testing Perl searches (platform = linux, compiler = GNU C++ version 6.3.0) - - + + @@ -20,18 +20,18 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 9. Testing Perl searches (platform = linux, compiler = GNU C++ version - 5.1.0)

    +

    Table 9. Testing Perl searches (platform = linux, compiler = GNU C++ version + 6.3.0)

    + 6.3.0)"> @@ -47,12 +47,12 @@ @@ -74,6 +74,11 @@ In file: ....../libs/libraries.htm

    + - @@ -102,6 +102,11 @@ In file: ....../libs/libraries.htm

    + - @@ -130,6 +130,11 @@ In file: ....../libs/libraries.htm

    + - @@ -158,6 +158,11 @@ In file: ....../libs/libraries.htm

    + - @@ -186,6 +186,11 @@ ....../libs/libraries.htm

    + - @@ -216,12 +216,7 @@ - + @@ -242,6 +242,11 @@ In file: boost/multiprecision/number.hpp

    + - @@ -272,22 +272,22 @@ @@ -299,22 +299,22 @@ @@ -327,12 +327,7 @@ - + @@ -355,12 +355,7 @@ - + @@ -383,22 +383,22 @@ @@ -411,22 +411,22 @@ @@ -445,7 +445,7 @@

    - std::regex + boost 1.65

    - boost 1.59 + std::regex

    @@ -62,7 +62,7 @@

    - PCRE-10.10 + PCRE-10.21

    +

    + 1.63
    (28838ns)
    +

    +

    - @@ -81,17 +86,12 @@

    - 1.44
    (340578ns)
    + 1.67
    (29436ns)

    - 1.49
    (354327ns)
    -

    -
    -

    - 1.00
    (237126ns)
    + 1.00
    (17678ns)

    +

    + 2.78
    (19366ns)
    +

    +

    - @@ -109,17 +114,12 @@

    - 2.19
    (160902ns)
    + 1.50
    (10471ns)

    - 1.21
    (89265ns)
    -

    -
    -

    - 1.00
    (73565ns)
    + 1.00
    (6963ns)

    +

    + 1.95
    (17081ns)
    +

    +

    - @@ -137,17 +142,12 @@

    - 1.90
    (161009ns)
    + 2.18
    (19086ns)

    - 2.30
    (194911ns)
    -

    -
    -

    - 1.00
    (84846ns)
    + 1.00
    (8745ns)

    +

    + 2.61
    (18132ns)
    +

    +

    - @@ -165,17 +170,12 @@

    - 2.27
    (164055ns)
    + 1.61
    (11211ns)

    - 1.38
    (100267ns)
    -

    -
    -

    - 1.00
    (72402ns)
    + 1.00
    (6952ns)

    +

    + 1.69
    (17517ns)
    +

    +

    - @@ -193,17 +198,12 @@

    - 2.14
    (160542ns)
    + 1.51
    (15645ns)

    - 1.72
    (129220ns)
    -

    -
    -

    - 1.00
    (75127ns)
    + 1.00
    (10345ns)

    - - -

    -
    -

    - 1.00
    (1136822ns)
    + 1.00
    (1500580ns)

    @@ -231,7 +226,12 @@

    - 2.55
    (2896286ns)
    + - +

    +
    +

    + 2.84
    (4260530ns)

    +

    + 1.64
    (14163004ns)
    +

    +

    - @@ -249,17 +254,12 @@

    - 1.88
    (11915857ns)
    + 1.00
    (8632111ns)

    - 1.14
    (7206389ns)
    -

    -
    -

    - 1.00
    (6347410ns)
    + 1.03
    (8907897ns)

    - 3.55
    (20770292ns)
    + 1.72
    (13046296ns)

    - 1.78
    (10395642ns)
    + 3.61
    (27370747ns)

    - 1.00
    (5856680ns)
    + 1.00
    (7585304ns)

    - 1.84
    (10752084ns)
    + 1.98
    (14992880ns)

    - 33.79
    (2157684ns)
    + 1.00
    (5021ns)

    - 1.00
    (63861ns)
    + 36.75
    (184532ns)

    - 1.13
    (72354ns)
    + 1.40
    (7046ns)

    - 1.15
    (73190ns)
    + 1.19
    (5966ns)

    - - -

    -
    -

    - 1.00
    (1167674ns)
    + 1.00
    (1551419ns)

    @@ -342,7 +337,12 @@

    - 1.47
    (1710795ns)
    + - +

    +
    +

    + 1.58
    (2444759ns)

    - - -

    -
    -

    - 1.32
    (150540ns)
    + 1.31
    (200846ns)

    @@ -370,7 +365,12 @@

    - 1.00
    (114132ns)
    + - +

    +
    +

    + 1.00
    (153117ns)

    - 10.62
    (1269946ns)
    + 1.46
    (234901ns)

    - 1.43
    (171067ns)
    + 11.35
    (1821532ns)

    - 1.00
    (119573ns)
    + 1.00
    (160446ns)

    - 1.35
    (161102ns)
    + 1.35
    (215802ns)

    - 10.59
    (1271338ns)
    + 1.41
    (234377ns)

    - 1.44
    (173240ns)
    + 11.47
    (1903901ns)

    - 1.00
    (120003ns)
    + 1.00
    (165921ns)

    - 1.34
    (160962ns)
    + 1.31
    (217806ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background/performance/section_id3141719723.html similarity index 67% rename from doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html rename to doc/html/boost_regex/background/performance/section_id3141719723.html index de962160..ef4d9d46 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html +++ b/doc/html/boost_regex/background/performance/section_id3141719723.html @@ -1,13 +1,13 @@ -Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) +Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) - - + + @@ -20,19 +20,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 14. Testing simple leftmost-longest matches (platform = Windows x64, - compiler = Microsoft Visual C++ version 14.0)

    +

    Table 10. Testing simple leftmost-longest matches (platform = Windows x64, + compiler = Microsoft Visual C++ version 14.1)

    + compiler = Microsoft Visual C++ version 14.1)"> @@ -46,7 +46,7 @@ @@ -83,7 +83,7 @@ @@ -173,12 +173,12 @@ @@ -191,12 +191,12 @@ @@ -209,12 +209,12 @@ @@ -227,12 +227,12 @@ @@ -245,12 +245,12 @@ @@ -263,12 +263,12 @@ @@ -281,12 +281,12 @@ @@ -298,12 +298,12 @@ @@ -322,7 +322,7 @@

    - boost 1.60 + boost 1.65

    @@ -65,12 +65,12 @@

    - 1.00
    (490ns)
    + 1.00
    (554ns)

    - 6.88
    (3372ns)
    + 11.06
    (6127ns)

    - 1.00
    (554ns)
    + 1.00
    (679ns)

    @@ -101,7 +101,7 @@

    - 1.00
    (614ns)
    + 1.00
    (1444ns)

    @@ -119,7 +119,7 @@

    - 1.00
    (596ns)
    + 1.00
    (1397ns)

    @@ -137,7 +137,7 @@

    - 1.00
    (748ns)
    + 1.00
    (1588ns)

    @@ -155,12 +155,12 @@

    - 1.00
    (372ns)
    + 1.00
    (466ns)

    - 9.77
    (3635ns)
    + 11.18
    (5208ns)

    - 1.00
    (367ns)
    + 1.00
    (519ns)

    - 9.84
    (3613ns)
    + 9.79
    (5083ns)

    - 1.00
    (444ns)
    + 1.00
    (619ns)

    - 8.45
    (3754ns)
    + 7.64
    (4730ns)

    - 1.00
    (325ns)
    + 1.00
    (449ns)

    - 5.19
    (1687ns)
    + 5.23
    (2347ns)

    - 1.00
    (308ns)
    + 1.00
    (362ns)

    - 5.39
    (1660ns)
    + 6.48
    (2344ns)

    - 1.00
    (356ns)
    + 1.00
    (1090ns)

    - 6.78
    (2415ns)
    + 2.48
    (2699ns)

    - 1.00
    (315ns)
    + 1.00
    (348ns)

    - 6.14
    (1935ns)
    + 6.57
    (2288ns)

    - 1.00
    (346ns)
    + 1.00
    (358ns)

    - 5.68
    (1967ns)
    + 6.41
    (2296ns)

    - 1.00
    (287ns)
    + 1.00
    (375ns)

    - 2.32
    (667ns)
    + 2.30
    (864ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background/performance/section_id3258595385.html similarity index 54% rename from doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html rename to doc/html/boost_regex/background/performance/section_id3258595385.html index eaf27246..646ebbfe 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html +++ b/doc/html/boost_regex/background/performance/section_id3258595385.html @@ -1,13 +1,13 @@ -Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) +Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) - - + + @@ -20,19 +20,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 10. Testing leftmost-longest searches (platform = Windows x64, compiler - = Microsoft Visual C++ version 14.0)

    +

    Table 11. Testing leftmost-longest searches (platform = Windows x64, compiler + = Microsoft Visual C++ version 14.1)

    + = Microsoft Visual C++ version 14.1)"> @@ -46,7 +46,7 @@ @@ -83,12 +83,12 @@ @@ -100,12 +100,12 @@ @@ -124,7 +124,7 @@

    - boost 1.60 + boost 1.65

    @@ -65,12 +65,12 @@

    - 1.00
    (1518659ns)
    + 1.00
    (80801ns)

    - 7.17
    (10890189ns)
    + 6.82
    (551022ns)

    - 1.00
    (185869ns)
    + 1.00
    (19868ns)

    - 3.77
    (700484ns)
    + 4.23
    (84068ns)

    - 1.00
    (165840ns)
    + 1.00
    (10508ns)

    - 4.95
    (820933ns)
    + 3.37
    (35378ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background/performance/section_id3261825021.html similarity index 63% rename from doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html rename to doc/html/boost_regex/background/performance/section_id3261825021.html index dd36dfc9..39849278 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html +++ b/doc/html/boost_regex/background/performance/section_id3261825021.html @@ -1,13 +1,13 @@ -Testing simple Perl matches (platform = linux, compiler = GNU C++ version 5.1.0) +Testing simple Perl matches (platform = linux, compiler = GNU C++ version 6.3.0) - - + + @@ -20,18 +20,18 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 13. Testing simple Perl matches (platform = linux, compiler = GNU C++ - version 5.1.0)

    +

    Table 12. Testing simple Perl matches (platform = linux, compiler = GNU C++ + version 6.3.0)

    + version 6.3.0)"> @@ -47,12 +47,12 @@ @@ -76,22 +76,22 @@ @@ -104,22 +104,22 @@ @@ -130,6 +130,11 @@ ...
    bob.smith@foo.tv

    + - @@ -158,6 +158,11 @@ ...
    foo12@foo.edu

    + - @@ -186,6 +186,11 @@ ...
    john@johnmaddock.co.uk

    + - @@ -216,22 +216,22 @@ @@ -244,22 +244,22 @@ @@ -272,22 +272,22 @@ @@ -300,22 +300,22 @@ @@ -328,22 +328,22 @@ @@ -356,22 +356,22 @@ @@ -384,22 +384,22 @@ @@ -412,22 +412,22 @@ @@ -439,22 +439,22 @@ @@ -473,7 +473,7 @@

    - std::regex + boost 1.65

    - boost 1.59 + std::regex

    @@ -62,7 +62,7 @@

    - PCRE-10.10 + PCRE-10.21

    - 2.72
    (384ns)
    + 2.65
    (506ns)

    - 2.85
    (402ns)
    + 2.86
    (546ns)

    - 1.00
    (141ns)
    + 1.00
    (191ns)

    - 1.33
    (187ns)
    + 1.37
    (262ns)

    - 19.85
    (2124ns)
    + 2.52
    (353ns)

    - 2.68
    (287ns)
    + 20.99
    (2939ns)

    - 1.00
    (107ns)
    + 1.00
    (140ns)

    - 2.94
    (315ns)
    + 3.50
    (490ns)

    +

    + 1.98
    (681ns)
    +

    +

    - @@ -137,17 +142,12 @@

    - 2.16
    (542ns)
    + 1.00
    (344ns)

    - 1.00
    (251ns)
    -

    -
    -

    - 1.25
    (315ns)
    + 1.32
    (454ns)

    +

    + 2.06
    (695ns)
    +

    +

    - @@ -165,17 +170,12 @@

    - 2.22
    (554ns)
    + 1.00
    (337ns)

    - 1.00
    (250ns)
    -

    -
    -

    - 1.28
    (319ns)
    + 1.34
    (451ns)

    +

    + 1.93
    (821ns)
    +

    +

    - @@ -193,17 +198,12 @@

    - 2.10
    (657ns)
    + 1.00
    (425ns)

    - 1.00
    (313ns)
    -

    -
    -

    - 1.16
    (364ns)
    + 1.24
    (526ns)

    - 4.08
    (339ns)
    + 2.34
    (243ns)

    - 2.51
    (208ns)
    + 4.45
    (463ns)

    - 1.00
    (83ns)
    + 1.00
    (104ns)

    - 1.42
    (118ns)
    + 1.62
    (168ns)

    - 4.14
    (335ns)
    + 2.33
    (245ns)

    - 2.49
    (202ns)
    + 4.39
    (461ns)

    - 1.00
    (81ns)
    + 1.00
    (105ns)

    - 1.46
    (118ns)
    + 1.60
    (168ns)

    - 3.17
    (254ns)
    + 2.08
    (208ns)

    - 2.25
    (180ns)
    + 3.31
    (331ns)

    - 1.00
    (80ns)
    + 1.00
    (100ns)

    - 1.32
    (106ns)
    + 1.52
    (152ns)

    - 3.02
    (248ns)
    + 2.28
    (237ns)

    - 2.52
    (207ns)
    + 3.39
    (353ns)

    - 1.00
    (82ns)
    + 1.00
    (104ns)

    - 1.18
    (97ns)
    + 1.18
    (123ns)

    - 2.70
    (216ns)
    + 2.12
    (216ns)

    - 2.25
    (180ns)
    + 3.02
    (308ns)

    - 1.00
    (80ns)
    + 1.00
    (102ns)

    - 1.18
    (94ns)
    + 1.19
    (121ns)

    - 2.54
    (229ns)
    + 2.12
    (257ns)

    - 2.39
    (215ns)
    + 2.66
    (322ns)

    - 1.00
    (90ns)
    + 1.00
    (121ns)

    - 1.16
    (104ns)
    + 1.17
    (142ns)

    - 2.46
    (219ns)
    + 2.00
    (230ns)

    - 2.39
    (213ns)
    + 2.65
    (305ns)

    - 1.00
    (89ns)
    + 1.00
    (115ns)

    - 1.18
    (105ns)
    + 1.22
    (140ns)

    - 2.51
    (228ns)
    + 2.05
    (244ns)

    - 2.31
    (210ns)
    + 2.81
    (334ns)

    - 1.00
    (91ns)
    + 1.00
    (119ns)

    - 1.12
    (102ns)
    + 1.22
    (145ns)

    - 1.92
    (113ns)
    + 1.65
    (135ns)

    - 2.12
    (125ns)
    + 1.83
    (150ns)

    - 1.07
    (63ns)
    + 1.00
    (82ns)

    - 1.00
    (59ns)
    + 1.02
    (84ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background/performance/section_id3752650613.html similarity index 68% rename from doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html rename to doc/html/boost_regex/background/performance/section_id3752650613.html index a14f311a..1e56bbee 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html +++ b/doc/html/boost_regex/background/performance/section_id3752650613.html @@ -1,13 +1,13 @@ -Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) +Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) - - + + @@ -20,19 +20,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 8. Testing Perl searches (platform = Windows x64, compiler = Microsoft - Visual C++ version 14.0)

    +

    Table 13. Testing Perl searches (platform = Windows x64, compiler = Microsoft + Visual C++ version 14.1)

    + Visual C++ version 14.1)"> @@ -49,7 +49,7 @@ @@ -116,17 +116,17 @@ @@ -149,17 +149,17 @@ @@ -182,17 +182,17 @@ @@ -215,17 +215,17 @@ @@ -248,12 +248,12 @@ @@ -314,27 +314,27 @@ @@ -346,27 +346,27 @@ @@ -379,12 +379,12 @@ @@ -478,27 +478,27 @@ @@ -517,7 +517,7 @@

    - boost 1.60 + boost 1.65

    @@ -83,17 +83,17 @@

    - 1.26
    (320274ns)
    + 1.36
    (21565ns)

    - 1.00
    (253424ns)
    + 1.00
    (15821ns)

    - 1.45
    (366324ns)
    + 1.08
    (17111ns)

    @@ -103,7 +103,7 @@

    - 3.00
    (759495ns)
    + 2.89
    (45731ns)

    - 2.94
    (198426ns)
    + 3.05
    (16442ns)

    - 1.28
    (86670ns)
    + 1.58
    (8492ns)

    - 1.00
    (67463ns)
    + 1.00
    (5385ns)

    @@ -136,7 +136,7 @@

    - 2.92
    (197323ns)
    + 3.31
    (17804ns)

    - 2.42
    (196304ns)
    + 2.11
    (15434ns)

    - 1.26
    (102129ns)
    + 1.31
    (9615ns)

    - 1.00
    (81160ns)
    + 1.00
    (7315ns)

    @@ -169,7 +169,7 @@

    - 5.12
    (415932ns)
    + 4.28
    (31331ns)

    - 2.87
    (196348ns)
    + 2.73
    (16457ns)

    - 1.28
    (87365ns)
    + 1.41
    (8503ns)

    - 1.00
    (68502ns)
    + 1.00
    (6023ns)

    @@ -202,7 +202,7 @@

    - 3.25
    (222612ns)
    + 3.14
    (18913ns)

    - 2.78
    (194346ns)
    + 2.32
    (15717ns)

    - 1.27
    (88709ns)
    + 1.57
    (10652ns)

    - 1.00
    (70020ns)
    + 1.00
    (6789ns)

    @@ -235,7 +235,7 @@

    - 4.03
    (282425ns)
    + 3.76
    (25542ns)

    - 1.00
    (1094575ns)
    + 1.00
    (1125008ns)

    - 2.87
    (3136734ns)
    + 2.90
    (3265708ns)

    @@ -281,12 +281,12 @@

    - 1.92
    (11651545ns)
    + 1.55
    (11035845ns)

    - 1.00
    (6057879ns)
    + 1.00
    (7123895ns)

    @@ -301,7 +301,7 @@

    - 1.55
    (9388319ns)
    + 1.46
    (10415180ns)

    - 29.23
    (8736875ns)
    + 26.17
    (8436744ns)

    - 38.71
    (11569512ns)
    + 32.97
    (10629852ns)

    - 1.00
    (298862ns)
    + 1.00
    (322399ns)

    - 995.92
    (297642713ns)
    + 811.84
    (261737971ns)

    - 27.63
    (8258368ns)
    + 23.34
    (7526351ns)

    - 1.60
    (153603ns)
    + 1.58
    (10246ns)

    - 1.10
    (105220ns)
    + 1.00
    (6487ns)

    - 2.55
    (244839ns)
    + 2.48
    (16109ns)

    - 8.53
    (819095ns)
    + 5.39
    (34994ns)

    - 1.00
    (96081ns)
    + 1.09
    (7046ns)

    - 1.00
    (1099128ns)
    + 1.00
    (1152646ns)

    - 1.66
    (1824126ns)
    + 1.70
    (1962067ns)

    @@ -412,12 +412,12 @@

    - 1.60
    (243611ns)
    + 1.62
    (255439ns)

    - 1.00
    (152166ns)
    + 1.00
    (158034ns)

    @@ -445,27 +445,27 @@

    - 1.54
    (260929ns)
    + 1.48
    (268270ns)

    - 1.18
    (198707ns)
    + 1.08
    (195553ns)

    - 1.81
    (305923ns)
    + 1.78
    (323879ns)

    - 8.53
    (1440180ns)
    + 7.75
    (1406976ns)

    - 1.00
    (168902ns)
    + 1.00
    (181554ns)

    - 1.52
    (256685ns)
    + 1.48
    (268560ns)

    - 1.17
    (198358ns)
    + 1.08
    (195915ns)

    - 1.80
    (303602ns)
    + 1.76
    (319886ns)

    - 8.51
    (1438197ns)
    + 7.72
    (1398962ns)

    - 1.00
    (168968ns)
    + 1.00
    (181328ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html b/doc/html/boost_regex/background/performance/section_id4128344975.html similarity index 62% rename from doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html rename to doc/html/boost_regex/background/performance/section_id4128344975.html index 03cffbf3..ade97ae0 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html +++ b/doc/html/boost_regex/background/performance/section_id4128344975.html @@ -1,13 +1,13 @@ -Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0) +Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.1) - - + + @@ -20,19 +20,19 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 12. Testing simple Perl matches (platform = Windows x64, compiler = - Microsoft Visual C++ version 14.0)

    +

    Table 14. Testing simple Perl matches (platform = Windows x64, compiler = + Microsoft Visual C++ version 14.1)

    + Microsoft Visual C++ version 14.1)"> @@ -49,7 +49,7 @@ @@ -116,27 +116,27 @@ @@ -149,27 +149,27 @@ @@ -182,27 +182,27 @@ @@ -215,27 +215,27 @@ @@ -248,27 +248,27 @@ @@ -281,27 +281,27 @@ @@ -314,27 +314,27 @@ @@ -347,27 +347,27 @@ @@ -380,27 +380,27 @@ @@ -413,27 +413,27 @@ @@ -446,27 +446,27 @@ @@ -479,27 +479,27 @@ @@ -511,27 +511,27 @@ @@ -550,7 +550,7 @@

    - boost 1.60 + boost 1.65

    @@ -83,27 +83,27 @@

    - 2.03
    (323ns)
    + 1.90
    (328ns)

    - 1.25
    (198ns)
    + 1.18
    (205ns)

    - 1.00
    (159ns)
    + 1.00
    (173ns)

    - 20.73
    (3296ns)
    + 27.81
    (4811ns)

    - 1.38
    (220ns)
    + 1.32
    (228ns)

    - 1.71
    (257ns)
    + 1.45
    (251ns)

    - 2.01
    (302ns)
    + 1.73
    (300ns)

    - 2.38
    (357ns)
    + 2.14
    (371ns)

    - 30.81
    (4622ns)
    + 24.75
    (4281ns)

    - 1.00
    (150ns)
    + 1.00
    (173ns)

    - 2.66
    (404ns)
    + 2.53
    (403ns)

    - 2.09
    (317ns)
    + 2.13
    (338ns)

    - 1.00
    (152ns)
    + 1.00
    (159ns)

    - 38.14
    (5798ns)
    + 34.16
    (5432ns)

    - 1.87
    (284ns)
    + 1.86
    (295ns)

    - 2.90
    (406ns)
    + 2.75
    (402ns)

    - 2.31
    (323ns)
    + 2.34
    (342ns)

    - 1.00
    (140ns)
    + 1.00
    (146ns)

    - 41.41
    (5797ns)
    + 40.78
    (5954ns)

    - 2.00
    (280ns)
    + 2.01
    (294ns)

    - 2.74
    (477ns)
    + 2.54
    (469ns)

    - 2.17
    (378ns)
    + 2.16
    (399ns)

    - 1.00
    (174ns)
    + 1.00
    (185ns)

    - 38.15
    (6638ns)
    + 44.27
    (8190ns)

    - 2.20
    (382ns)
    + 2.04
    (377ns)

    - 1.63
    (171ns)
    + 1.53
    (171ns)

    - 1.14
    (120ns)
    + 1.14
    (128ns)

    - 1.13
    (119ns)
    + 1.11
    (124ns)

    - 34.15
    (3586ns)
    + 21.63
    (2422ns)

    - 1.00
    (105ns)
    + 1.00
    (112ns)

    - 1.69
    (171ns)
    + 1.50
    (167ns)

    - 1.18
    (119ns)
    + 1.15
    (128ns)

    - 1.18
    (119ns)
    + 1.13
    (125ns)

    - 35.54
    (3590ns)
    + 21.92
    (2433ns)

    - 1.00
    (101ns)
    + 1.00
    (111ns)

    - 1.60
    (149ns)
    + 1.40
    (143ns)

    - 1.15
    (107ns)
    + 1.15
    (117ns)

    - 1.10
    (102ns)
    + 1.03
    (105ns)

    - 39.99
    (3719ns)
    + 35.65
    (3636ns)

    - 1.00
    (93ns)
    + 1.00
    (102ns)

    - 1.65
    (162ns)
    + 1.47
    (157ns)

    - 1.00
    (98ns)
    + 1.00
    (107ns)

    - 1.31
    (128ns)
    + 1.27
    (136ns)

    - 16.57
    (1624ns)
    + 16.75
    (1792ns)

    - 1.03
    (101ns)
    + 1.03
    (110ns)

    - 1.58
    (153ns)
    + 1.39
    (145ns)

    - 1.00
    (97ns)
    + 1.00
    (104ns)

    - 1.19
    (115ns)
    + 1.13
    (117ns)

    - 16.54
    (1604ns)
    + 16.90
    (1758ns)

    - 1.02
    (99ns)
    + 1.07
    (111ns)

    - 1.57
    (170ns)
    + 1.44
    (164ns)

    - 1.00
    (108ns)
    + 1.00
    (114ns)

    - 1.10
    (119ns)
    + 1.10
    (125ns)

    - 21.83
    (2358ns)
    + 15.61
    (1779ns)

    - 1.00
    (108ns)
    + 1.06
    (121ns)

    - 1.50
    (159ns)
    + 1.36
    (152ns)

    - 1.01
    (107ns)
    + 1.00
    (112ns)

    - 1.05
    (111ns)
    + 1.04
    (117ns)

    - 17.67
    (1873ns)
    + 15.86
    (1776ns)

    - 1.00
    (106ns)
    + 1.05
    (118ns)

    - 1.53
    (164ns)
    + 1.40
    (158ns)

    - 1.00
    (107ns)
    + 1.00
    (113ns)

    - 1.07
    (115ns)
    + 1.10
    (124ns)

    - 18.05
    (1931ns)
    + 15.86
    (1792ns)

    - 1.00
    (107ns)
    + 1.07
    (121ns)

    - 2.10
    (128ns)
    + 2.01
    (141ns)

    - 1.00
    (61ns)
    + 1.00
    (70ns)

    - 1.30
    (79ns)
    + 1.17
    (82ns)

    - 9.89
    (603ns)
    + 8.24
    (577ns)

    - 1.25
    (76ns)
    + 1.19
    (83ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html b/doc/html/boost_regex/background/performance/section_id4148872883.html similarity index 55% rename from doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html rename to doc/html/boost_regex/background/performance/section_id4148872883.html index 0e13c032..5e9330d1 100644 --- a/doc/html/boost_regex/background_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html +++ b/doc/html/boost_regex/background/performance/section_id4148872883.html @@ -1,13 +1,13 @@ -Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 5.1.0) +Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 6.3.0) - - + + @@ -20,18 +20,18 @@

    -PrevUpHomeNext +PrevUpHomeNext
    -

    Table 11. Testing leftmost-longest searches (platform = linux, compiler = - GNU C++ version 5.1.0)

    +

    Table 15. Testing leftmost-longest searches (platform = linux, compiler = + GNU C++ version 6.3.0)

    + GNU C++ version 6.3.0)"> @@ -46,12 +46,12 @@ @@ -93,17 +93,17 @@ @@ -115,17 +115,17 @@ @@ -144,7 +144,7 @@

    - std::regex + boost 1.65

    - boost 1.59 + std::regex

    @@ -70,17 +70,17 @@

    - 1.47
    (2329256ns)
    + 1.00
    (107026ns)

    - 1.00
    (1583069ns)
    + 1.44
    (154551ns)

    - 2.43
    (3849462ns)
    + 1.64
    (175184ns)

    - 10.94
    (1129103ns)
    + 1.00
    (15420ns)

    - 1.00
    (103241ns)
    + 6.89
    (106275ns)

    - 1.01
    (104450ns)
    + 1.59
    (24567ns)

    - 30.21
    (2093732ns)
    + 1.03
    (5399ns)

    - 1.00
    (69316ns)
    + 36.27
    (190577ns)

    - 1.32
    (91168ns)
    + 1.00
    (5254ns)


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/redist.html b/doc/html/boost_regex/background/redist.html similarity index 78% rename from doc/html/boost_regex/background_information/redist.html rename to doc/html/boost_regex/background/redist.html index 37bdeb16..e5e84e08 100644 --- a/doc/html/boost_regex/background_information/redist.html +++ b/doc/html/boost_regex/background/redist.html @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@
    -PrevUpHomeNext +PrevUpHomeNext

    If you are using Microsoft or Borland C++ and link to a dll version of the @@ -55,7 +55,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/standards.html b/doc/html/boost_regex/background/standards.html similarity index 82% rename from doc/html/boost_regex/background_information/standards.html rename to doc/html/boost_regex/background/standards.html index 0624cf15..43481c33 100644 --- a/doc/html/boost_regex/background_information/standards.html +++ b/doc/html/boost_regex/background/standards.html @@ -5,8 +5,8 @@ - - + + @@ -20,24 +20,23 @@
    -PrevUpHomeNext +PrevUpHomeNext
    - - C++ + + C++

    Boost.Regex is intended to conform to the Technical Report on C++ Library Extensions.

    - - ECMAScript + + ECMAScript / JavaScript

    @@ -49,8 +48,8 @@ rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.

    - - Perl + + Perl

    Almost all Perl features are supported, except for: @@ -73,8 +72,8 @@ the Unicode requirements below.

    - - POSIX + + POSIX

    All the POSIX basic and extended regular expression features are supported, @@ -93,8 +92,8 @@ a custom traits class.

    - - Unicode + + Unicode

    The following comments refer to Unicode @@ -568,7 +567,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information/thread_safety.html b/doc/html/boost_regex/background/thread_safety.html similarity index 80% rename from doc/html/boost_regex/background_information/thread_safety.html rename to doc/html/boost_regex/background/thread_safety.html index 26639f28..5b90e616 100644 --- a/doc/html/boost_regex/background_information/thread_safety.html +++ b/doc/html/boost_regex/background/thread_safety.html @@ -5,7 +5,7 @@ - + @@ -20,12 +20,11 @@
    -PrevUpHomeNext +PrevUpHomeNext

    The Boost.Regex library is thread safe when Boost is: you can verify that @@ -53,10 +52,10 @@ can also be shared between threads.

    - The class - RegEx is only thread safe if each thread gets its own RegEx instance - (apartment threading) - this is a consequence of RegEx handling both compiling - and matching regular expressions. + The class RegEx + is only thread safe if each thread gets its own RegEx instance (apartment + threading) - this is a consequence of RegEx handling both compiling and matching + regular expressions.

    Finally note that changing the global locale invalidates all compiled regular @@ -79,7 +78,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/background_information.html b/doc/html/boost_regex/background_information.html deleted file mode 100644 index 999fc861..00000000 --- a/doc/html/boost_regex/background_information.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Background Information - - - - - - - - - - - - - - - -
    Boost C++ LibrariesHomeLibrariesPeopleFAQMore
    -
    -
    -PrevUpHomeNext -
    - - - - -
    -
    -
    -PrevUpHomeNext -
    - - diff --git a/doc/html/boost_regex/install.html b/doc/html/boost_regex/install.html index 566707da..4f2acf22 100644 --- a/doc/html/boost_regex/install.html +++ b/doc/html/boost_regex/install.html @@ -7,7 +7,7 @@ - + @@ -20,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    @@ -203,7 +203,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/introduction_and_overview.html b/doc/html/boost_regex/intro.html similarity index 97% rename from doc/html/boost_regex/introduction_and_overview.html rename to doc/html/boost_regex/intro.html index 0bae9b0e..6905ce43 100644 --- a/doc/html/boost_regex/introduction_and_overview.html +++ b/doc/html/boost_regex/intro.html @@ -24,8 +24,7 @@

    Regular expressions are a form of pattern-matching that are often used in text @@ -179,7 +178,7 @@ a series of strings (similar to perl style split operations).

    - For those that dislike templates, there is a high level wrapper class RegEx + For those that dislike templates, there is a high level wrapper class RegEx that is an encapsulation of the lower level template code - it provides a simplified interface for those that don't need the full power of the library, and supports only narrow characters, and the "extended" regular expression syntax. @@ -192,7 +191,7 @@ need compatibility with these API's.

    - Finally, note that the library now has run-time + Finally, note that the library now has run-time localization support, and recognizes the full POSIX regular expression syntax - including advanced features like multi-character collating elements and equivalence classes - as well as providing compatibility with other regular diff --git a/doc/html/boost_regex/partial_matches.html b/doc/html/boost_regex/partial_matches.html index 8106ae82..6c461ce8 100644 --- a/doc/html/boost_regex/partial_matches.html +++ b/doc/html/boost_regex/partial_matches.html @@ -29,7 +29,7 @@

    The match_flag_type match_partial can be passed - to the following algorithms: regex_match, regex_search, and regex_grep, and used with the iterator + to the following algorithms: regex_match, regex_search, and regex_grep, and used with the iterator regex_iterator. When used it indicates that partial as well as full matches should be found. A partial match is one that matched one or more characters at the end of the @@ -42,7 +42,7 @@ can be differentiated as shown in the following table (the variable M represents an instance of match_results as filled in by regex_match, regex_search - or regex_grep): + or regex_grep):

    diff --git a/doc/html/boost_regex/ref.html b/doc/html/boost_regex/ref.html index 29d83c72..8f7877de 100644 --- a/doc/html/boost_regex/ref.html +++ b/doc/html/boost_regex/ref.html @@ -93,20 +93,18 @@
    Iterator Requirements
    -
    Deprecated Interfaces
    +
    Deprecated Interfaces
    -
    regex_format +
    regex_format (Deprecated)
    -
    regex_grep - (Deprecated)
    -
    regex_split +
    regex_grep (Deprecated)
    +
    regex_split (deprecated)
    -
    High - Level Class RegEx (Deprecated)
    +
    High Level Class + RegEx (Deprecated)
    -
    Internal Details
    -
    Unicode - Iterators
    +
    Internal Details
    +
    Unicode Iterators
    diff --git a/doc/html/boost_regex/ref/concepts/iterator_concepts.html b/doc/html/boost_regex/ref/concepts/iterator_concepts.html index 4892b123..c64888a9 100644 --- a/doc/html/boost_regex/ref/concepts/iterator_concepts.html +++ b/doc/html/boost_regex/ref/concepts/iterator_concepts.html @@ -7,7 +7,7 @@ - +
    @@ -20,7 +20,7 @@

    -PrevUpHomeNext +PrevUpHomeNext

    @@ -41,7 +41,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/deprecated_interfaces.html b/doc/html/boost_regex/ref/deprecated.html similarity index 72% rename from doc/html/boost_regex/ref/deprecated_interfaces.html rename to doc/html/boost_regex/ref/deprecated.html index 7f7d3ac3..f09dfa91 100644 --- a/doc/html/boost_regex/ref/deprecated_interfaces.html +++ b/doc/html/boost_regex/ref/deprecated.html @@ -7,7 +7,7 @@ - + @@ -20,21 +20,20 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -47,7 +46,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html b/doc/html/boost_regex/ref/deprecated/old_regex.html similarity index 98% rename from doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html rename to doc/html/boost_regex/ref/deprecated/old_regex.html index 0f1dbcab..45fb1e4e 100644 --- a/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html +++ b/doc/html/boost_regex/ref/deprecated/old_regex.html @@ -5,9 +5,9 @@ - + - + @@ -20,12 +20,12 @@

    -PrevUpHomeNext +PrevUpHomeNext

    The high level wrapper class RegEx is now deprecated and does not form @@ -826,7 +826,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html b/doc/html/boost_regex/ref/deprecated/regex_format.html similarity index 86% rename from doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html rename to doc/html/boost_regex/ref/deprecated/regex_format.html index 5db1fe8a..c34a8531 100644 --- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html +++ b/doc/html/boost_regex/ref/deprecated/regex_format.html @@ -5,8 +5,8 @@ - - + + @@ -20,11 +20,11 @@
    -PrevUpHomeNext +PrevUpHomeNext

    @@ -34,8 +34,8 @@ previous version of Boost.Regex and will not be further updated:

    - - Algorithm + + Algorithm regex_format
    #include <boost/regex.hpp>
    @@ -167,7 +167,7 @@
     
     
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html b/doc/html/boost_regex/ref/deprecated/regex_grep.html similarity index 98% rename from doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html rename to doc/html/boost_regex/ref/deprecated/regex_grep.html index 2b01bc42..dded2993 100644 --- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html +++ b/doc/html/boost_regex/ref/deprecated/regex_grep.html @@ -5,7 +5,7 @@ - + @@ -20,12 +20,11 @@
    -PrevUpHomeNext +PrevUpHomeNext

    The algorithm regex_grep @@ -370,7 +369,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html b/doc/html/boost_regex/ref/deprecated/regex_split.html similarity index 95% rename from doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html rename to doc/html/boost_regex/ref/deprecated/regex_split.html index ac841db3..fc74ce17 100644 --- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html +++ b/doc/html/boost_regex/ref/deprecated/regex_split.html @@ -5,7 +5,7 @@ - + @@ -20,11 +20,11 @@
    -PrevUpHomeNext +PrevUpHomeNext

    @@ -157,7 +157,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/internal_details.html b/doc/html/boost_regex/ref/internals.html similarity index 57% rename from doc/html/boost_regex/ref/internal_details.html rename to doc/html/boost_regex/ref/internals.html index 848bdfad..a7d8cc2d 100644 --- a/doc/html/boost_regex/ref/internal_details.html +++ b/doc/html/boost_regex/ref/internals.html @@ -6,8 +6,8 @@ - - + + @@ -20,14 +20,13 @@

    -PrevUpHomeNext +PrevUpHomeNext
    @@ -39,7 +38,7 @@

    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/ref/internal_details/uni_iter.html b/doc/html/boost_regex/ref/internals/uni_iter.html similarity index 89% rename from doc/html/boost_regex/ref/internal_details/uni_iter.html rename to doc/html/boost_regex/ref/internals/uni_iter.html index 28e6f0c9..fc320015 100644 --- a/doc/html/boost_regex/ref/internal_details/uni_iter.html +++ b/doc/html/boost_regex/ref/internals/uni_iter.html @@ -5,9 +5,9 @@ - - - + + + @@ -20,16 +20,15 @@

    -PrevUpHomeNext +PrevUpHomeNext
    - - Synopsis + + Synopsis
    #include <boost/regex/pending/unicode_iterator.hpp>
    template <class BaseIterator, class U16Type = ::boost::uint16_t>
    @@ -51,8 +50,8 @@
     class utf8_output_iterator;
     
    - - Description + + Description

    This header contains a selection of iterator adaptors that make a sequence @@ -172,7 +171,7 @@


    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/boost_regex/unicode.html b/doc/html/boost_regex/unicode.html index 6168c6c7..e91f1a3c 100644 --- a/doc/html/boost_regex/unicode.html +++ b/doc/html/boost_regex/unicode.html @@ -6,7 +6,7 @@ - + @@ -20,7 +20,7 @@
    -PrevUpHomeNext +PrevUpHomeNext

    @@ -80,7 +80,7 @@
    -PrevUpHomeNext +PrevUpHomeNext
    diff --git a/doc/html/index.html b/doc/html/index.html index 2aa1fd55..06418280 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -49,8 +49,7 @@
    Algorithm Tuning
    Building and Installing the Library
    -
    Introduction and - Overview
    +
    Introduction and Overview
    Unicode and Boost.Regex
    Understanding Marked Sub-Expressions and Captures
    @@ -157,61 +156,56 @@
    Iterator Requirements
    -
    Deprecated Interfaces
    +
    Deprecated Interfaces
    -
    regex_format +
    regex_format (Deprecated)
    -
    regex_grep - (Deprecated)
    -
    regex_split +
    regex_grep (Deprecated)
    +
    regex_split (deprecated)
    -
    High - Level Class RegEx (Deprecated)
    +
    High Level Class + RegEx (Deprecated)
    -
    Internal Details
    -
    Unicode - Iterators
    +
    Internal Details
    +
    Unicode Iterators
    -
    Background Information
    +
    Background Information
    -
    Headers
    -
    Localization
    -
    Thread - Safety
    -
    Test and - Example Programs
    -
    References - and Further Information
    -
    FAQ
    -
    Performance
    +
    Headers
    +
    Localization
    +
    Thread Safety
    +
    Test and Example Programs
    +
    References and Further + Information
    +
    FAQ
    +
    Performance
    -
    Testing - Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version - 14.0)
    -
    Testing - Perl searches (platform = linux, compiler = GNU C++ version 5.1.0)
    -
    Testing - leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual - C++ version 14.0)
    -
    Testing - leftmost-longest searches (platform = linux, compiler = GNU C++ version 5.1.0)
    -
    Testing - simple Perl matches (platform = Windows x64, compiler = Microsoft Visual - C++ version 14.0)
    -
    Testing - simple Perl matches (platform = linux, compiler = GNU C++ version 5.1.0)
    -
    Testing - simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft - Visual C++ version 14.0)
    -
    Testing +
    Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version - 5.1.0)
    + 6.3.0) +
    Testing + Perl searches (platform = linux, compiler = GNU C++ version 6.3.0)
    +
    Testing + simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft + Visual C++ version 14.1)
    +
    Testing + leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual + C++ version 14.1)
    +
    Testing + simple Perl matches (platform = linux, compiler = GNU C++ version 6.3.0)
    +
    Testing + Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version + 14.1)
    +
    Testing + simple Perl matches (platform = Windows x64, compiler = Microsoft Visual + C++ version 14.1)
    +
    Testing + leftmost-longest searches (platform = linux, compiler = GNU C++ version 6.3.0)
    -
    Standards - Conformance
    -
    Redistributables
    -
    Acknowledgements
    -
    History
    +
    Standards Conformance
    +
    Redistributables
    +
    Acknowledgements
    +
    History

    @@ -221,7 +215,7 @@

    - +

    Last revised: July 30, 2017 at 17:49:38 GMT

    Last revised: August 01, 2017 at 16:59:52 GMT


    diff --git a/doc/introduction.qbk b/doc/introduction.qbk index 52af78f4..9c07a483 100644 --- a/doc/introduction.qbk +++ b/doc/introduction.qbk @@ -152,7 +152,7 @@ are available in both narrow character and Unicode versions, and are provided for those who need compatibility with these API's. Finally, note that the library now has -[link boost_regex.background_information.locale run-time localization support], +[link boost_regex.background.locale run-time localization support], and recognizes the full POSIX regular expression syntax - including advanced features like multi-character collating elements and equivalence classes - as well as providing compatibility with other regular expression diff --git a/doc/regex.qbk b/doc/regex.qbk index 643db9a2..bac8936f 100644 --- a/doc/regex.qbk +++ b/doc/regex.qbk @@ -32,15 +32,15 @@ [template regex_search[] [link boost_regex.ref.regex_search `regex_search`]] [template regex_match[] [link boost_regex.ref.regex_match `regex_match`]] [template regex_replace[] [link boost_regex.ref.regex_replace `regex_replace`]] -[template regex_grep[] [link boost_regex.ref.deprecated_interfaces.regex_grep `regex_grep`]] -[template regex_split[] [link boost_regex.ref.deprecated_interfaces.regex_split `regex_split`]] +[template regex_grep[] [link boost_regex.ref.deprecated.regex_grep `regex_grep`]] +[template regex_split[] [link boost_regex.ref.deprecated.regex_split `regex_split`]] [template match_results_format[] [link boost_regex.match_results_format `match_results<>::format`]] [template perl_format[] [link boost_regex.format.perl_format Perl]] [template sed_format[] [link boost_regex.format.sed_format Sed]] [template boost_extended_format[] [link boost_regex.format.boost_format_syntax Boost-Extended]] [/depricated stuff:] -[template RegEx[] [link boost_regex.ref.deprecated_interfaces.old_regex `RegEx`]] +[template RegEx[] [link boost_regex.ref.deprecated.old_regex `RegEx`]] [template regcomp[] [link boost_regex.ref.posix.regcomp `regcomp`]] [template regexec[] [link boost_regex.ref.posix.regexec `regexec`]] [template regerror[] [link boost_regex.ref.posix.regerror `regerror`]] diff --git a/doc/thread_safety.qbk b/doc/thread_safety.qbk index a95a7ac7..af54b900 100644 --- a/doc/thread_safety.qbk +++ b/doc/thread_safety.qbk @@ -25,7 +25,7 @@ otherwise use a separate instance of [match_results] per thread. The [link boost_regex.ref.posix POSIX API functions] are all re-entrant and thread safe, regular expressions compiled with regcomp can also be shared between threads. -The [link boost_regex.ref.deprecated_interfaces.old_regex class RegEx] is +The [link boost_regex.ref.deprecated.old_regex class RegEx] is only thread safe if each thread gets its own RegEx instance (apartment threading) - this is a consequence of RegEx handling both compiling and matching regular expressions. From 5c543a8e2b88e17607885a6cc23466328c6e0e5f Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Tue, 1 Aug 2017 19:43:44 +0100 Subject: [PATCH 20/27] Copy named sub-expression info when adapting ICU via iterators. Fixes: https://svn.boost.org/trac10/ticket/13126. --- include/boost/regex/icu.hpp | 13 +++++++------ test/regress/test_icu.cpp | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 6 deletions(-) diff --git a/include/boost/regex/icu.hpp b/include/boost/regex/icu.hpp index 8be8e60a..f1ca99c9 100644 --- a/include/boost/regex/icu.hpp +++ b/include/boost/regex/icu.hpp @@ -389,12 +389,13 @@ inline u32regex make_u32regex(const U_NAMESPACE_QUALIFIER UnicodeString& s, boos // regex_match overloads that widen the character type as appropriate: // namespace BOOST_REGEX_DETAIL_NS{ -template -void copy_results(MR1& out, MR2 const& in) +template +void copy_results(MR1& out, MR2 const& in, NSubs named_subs) { // copy results from an adapted MR2 match_results: out.set_size(in.size(), in.prefix().first.base(), in.suffix().second.base()); out.set_base(in.base().base()); + out.set_named_subs(named_subs); for(int i = 0; i < (int)in.size(); ++i) { if(in[i].matched || !i) @@ -443,7 +444,7 @@ bool do_regex_match(BidiIterator first, BidiIterator last, match_type what; bool result = ::boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); // copy results across to m: - if(result) copy_results(m, what); + if(result) copy_results(m, what, e.get_named_subs()); return result; } template @@ -459,7 +460,7 @@ bool do_regex_match(BidiIterator first, BidiIterator last, match_type what; bool result = ::boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); // copy results across to m: - if(result) copy_results(m, what); + if(result) copy_results(m, what, e.get_named_subs()); return result; } } // namespace BOOST_REGEX_DETAIL_NS @@ -618,7 +619,7 @@ bool do_regex_search(BidiIterator first, BidiIterator last, match_type what; bool result = ::boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); // copy results across to m: - if(result) copy_results(m, what); + if(result) copy_results(m, what, e.get_named_subs()); return result; } template @@ -635,7 +636,7 @@ bool do_regex_search(BidiIterator first, BidiIterator last, match_type what; bool result = ::boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); // copy results across to m: - if(result) copy_results(m, what); + if(result) copy_results(m, what, e.get_named_subs()); return result; } } diff --git a/test/regress/test_icu.cpp b/test/regress/test_icu.cpp index 6e21cf37..67044f0e 100644 --- a/test/regress/test_icu.cpp +++ b/test/regress/test_icu.cpp @@ -96,6 +96,40 @@ void compare_result(const MR1& w1, const MR2& w2, boost::mpl::int_<2> const*) BOOST_REGEX_TEST_ERROR("Matched mismatch in match_results class", UChar32); } } + // + // We don't have a way to access a list of named sub-expressions since we only store + // hashes, but "abc" and "N" are common names used in our tests, so check those: + // + if (w1["abc"].matched) + { + if (w2["abc"].matched == 0) + { + BOOST_REGEX_TEST_ERROR("Matched mismatch in match_results class", UChar32); + } + if ((w1.position("abc") != boost::BOOST_REGEX_DETAIL_NS::distance(iterator_type(w2.prefix().first), iterator_type(w2["abc"].first))) || (w1.length("abc") != boost::BOOST_REGEX_DETAIL_NS::distance(iterator_type(w2["abc"].first), iterator_type(w2["abc"].second)))) + { + BOOST_REGEX_TEST_ERROR("Iterator mismatch in match_results class", UChar32); + } + } + else if (w2["abc"].matched) + { + BOOST_REGEX_TEST_ERROR("Matched mismatch in match_results class", UChar32); + } + if (w1["N"].matched) + { + if (w2["N"].matched == 0) + { + BOOST_REGEX_TEST_ERROR("Matched mismatch in match_results class", UChar32); + } + if ((w1.position("N") != boost::BOOST_REGEX_DETAIL_NS::distance(iterator_type(w2.prefix().first), iterator_type(w2["N"].first))) || (w1.length("N") != boost::BOOST_REGEX_DETAIL_NS::distance(iterator_type(w2["N"].first), iterator_type(w2["N"].second)))) + { + BOOST_REGEX_TEST_ERROR("Iterator mismatch in match_results class", UChar32); + } + } + else if (w2["N"].matched) + { + BOOST_REGEX_TEST_ERROR("Matched mismatch in match_results class", UChar32); + } } template void compare_result(const MR1& w1, const MR2& w2, boost::mpl::int_<1> const*) From a32e0cc9d39f8c0886fe5576022c7bf0c9efc265 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 3 Aug 2017 18:04:41 +0100 Subject: [PATCH 21/27] Fix pattern escaping in regex used for \R so it works when the x-modifier is in effect. Fixes: https://svn.boost.org/trac10/ticket/12960 --- include/boost/regex/v4/regex_traits_defaults.hpp | 12 ++++++------ test/regress/test_escapes.cpp | 7 +++++++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/include/boost/regex/v4/regex_traits_defaults.hpp b/include/boost/regex/v4/regex_traits_defaults.hpp index 2a2cf21d..d5107882 100644 --- a/include/boost/regex/v4/regex_traits_defaults.hpp +++ b/include/boost/regex/v4/regex_traits_defaults.hpp @@ -330,11 +330,11 @@ inline const charT* get_escape_R_string() # pragma warning(push) # pragma warning(disable:4309 4245) #endif - static const charT e1[] = { '(', '?', '>', '\x0D', '\x0A', '?', - '|', '[', '\x0A', '\x0B', '\x0C', static_cast('\x85'), '\\', 'x', '{', '2', '0', '2', '8', '}', + static const charT e1[] = { '(', '?', '>', '\\', 'x', '0', 'D', '\\', 'x', '0', 'A', '?', + '|', '[', '\\', 'x', '0', 'A', '\\', 'x', '0', 'B', '\\', 'x', '0', 'C', static_cast('\x85'), '\\', 'x', '{', '2', '0', '2', '8', '}', '\\', 'x', '{', '2', '0', '2', '9', '}', ']', ')', '\0' }; - static const charT e2[] = { '(', '?', '>', '\x0D', '\x0A', '?', - '|', '[', '\x0A', '\x0B', '\x0C', static_cast('\x85'), ']', ')', '\0' }; + static const charT e2[] = { '(', '?', '>', '\\', 'x', '0', 'D', '\\', 'x', '0', 'A', '?', + '|', '[', '\\', 'x', '0', 'A', '\\', 'x', '0', 'B', '\\', 'x', '0', 'C', static_cast('\x85'), ']', ')', '\0' }; charT c = static_cast(0x2029u); bool b = (static_cast(c) == 0x2029u); @@ -352,8 +352,8 @@ inline const char* get_escape_R_string() # pragma warning(push) # pragma warning(disable:4309) #endif - static const char e2[] = { '(', '?', '>', '\x0D', '\x0A', '?', - '|', '[', '\x0A', '\x0B', '\x0C', '\x85', ']', ')', '\0' }; + static const char e2[] = { '(', '?', '>', '\\', 'x', '0', 'D', '\\', 'x', '0', 'A', '?', + '|', '[', '\\', 'x', '0', 'A', '\\', 'x', '0', 'B', '\\', 'x', '0', 'C', '\\', 'x', '8', '5', ']', ')', '\0' }; return e2; #ifdef BOOST_MSVC # pragma warning(pop) diff --git a/test/regress/test_escapes.cpp b/test/regress/test_escapes.cpp index e3d675be..567bf43a 100644 --- a/test/regress/test_escapes.cpp +++ b/test/regress/test_escapes.cpp @@ -155,12 +155,19 @@ void test_assertion_escapes() TEST_REGEX_SEARCH("\\R", perl, "foo\nbar", match_default, make_array(3, 4, -2, -2)); TEST_REGEX_SEARCH("\\R", perl, "foo\rbar", match_default, make_array(3, 4, -2, -2)); TEST_REGEX_SEARCH("\\R", perl, "foo\r\nbar", match_default, make_array(3, 5, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\r\nbar", match_default, make_array(0, 5, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x0A" "bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x0B" "bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x0C" "bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x85" "bar", match_default, make_array(0, 4, -2, -2)); // see if \u works: const wchar_t* w = L"\u2028"; if(*w == 0x2028u) { TEST_REGEX_SEARCH_W(L"\\R", perl, L"foo\u2028bar", match_default, make_array(3, 4, -2, -2)); TEST_REGEX_SEARCH_W(L"\\R", perl, L"foo\u2029bar", match_default, make_array(3, 4, -2, -2)); + TEST_REGEX_SEARCH_W(L"(?x) abc \\R", perl, L"abc\u2028bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH_W(L"(?x) abc \\R", perl, L"abc\u2029bar", match_default, make_array(0, 4, -2, -2)); } } From 09894a5e2181eb704eacb81bd397003a1a700a52 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Fri, 4 Aug 2017 09:08:12 +0100 Subject: [PATCH 22/27] Fix escapes in test case. --- test/regress/test_escapes.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/regress/test_escapes.cpp b/test/regress/test_escapes.cpp index 567bf43a..2511fcfe 100644 --- a/test/regress/test_escapes.cpp +++ b/test/regress/test_escapes.cpp @@ -156,10 +156,10 @@ void test_assertion_escapes() TEST_REGEX_SEARCH("\\R", perl, "foo\rbar", match_default, make_array(3, 4, -2, -2)); TEST_REGEX_SEARCH("\\R", perl, "foo\r\nbar", match_default, make_array(3, 5, -2, -2)); TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\r\nbar", match_default, make_array(0, 5, -2, -2)); - TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x0A" "bar", match_default, make_array(0, 4, -2, -2)); - TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x0B" "bar", match_default, make_array(0, 4, -2, -2)); - TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x0C" "bar", match_default, make_array(0, 4, -2, -2)); - TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\x85" "bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\012bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\013bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\013bar", match_default, make_array(0, 4, -2, -2)); + TEST_REGEX_SEARCH("(?x) abc \\R", perl, "abc\205bar", match_default, make_array(0, 4, -2, -2)); // see if \u works: const wchar_t* w = L"\u2028"; if(*w == 0x2028u) From 289ce864881d2a18f8bdfb0992909ecdee8c20b2 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Thu, 21 Sep 2017 17:15:51 +0100 Subject: [PATCH 23/27] Regex: move boost headers to top of list to work around clang issue which requires workarounds present in config.hpp. --- example/grep/grep.cpp | 2 +- example/snippets/credit_card_example.cpp | 2 +- example/snippets/partial_regex_grep.cpp | 2 +- example/snippets/partial_regex_iterate.cpp | 2 +- example/snippets/partial_regex_match.cpp | 2 +- example/snippets/regex_grep_example_1.cpp | 2 +- example/snippets/regex_grep_example_2.cpp | 1 + example/snippets/regex_grep_example_3.cpp | 2 +- example/snippets/regex_grep_example_4.cpp | 2 +- example/snippets/regex_iterator_example.cpp | 2 +- example/snippets/regex_match_example.cpp | 2 +- example/snippets/regex_merge_example.cpp | 2 +- example/snippets/regex_replace_example.cpp | 2 +- example/snippets/regex_search_example.cpp | 2 +- example/snippets/regex_split_example_1.cpp | 2 +- example/snippets/regex_split_example_2.cpp | 2 +- example/snippets/regex_token_iterator_eg_2.cpp | 2 +- example/timer/regex_timer.cpp | 12 ++++++------ include/boost/regex/icu.hpp | 1 + include/boost/regex/pending/object_cache.hpp | 4 ++-- include/boost/regex/v4/regex_workaround.hpp | 2 +- test/c_compiler_checks/wide_posix_api_check.c | 2 +- test/pathology/bad_expression_test.cpp | 2 +- test/pathology/recursion_test.cpp | 2 +- test/static_mutex/static_mutex_test.cpp | 4 ++-- tools/generate/tables.cpp | 2 +- 26 files changed, 33 insertions(+), 31 deletions(-) diff --git a/example/grep/grep.cpp b/example/grep/grep.cpp index f2becf12..5c212ea6 100644 --- a/example/grep/grep.cpp +++ b/example/grep/grep.cpp @@ -9,11 +9,11 @@ * */ +#include #include #include #include #include -#include #ifdef BOOST_MSVC #pragma warning(disable:4512 4244) diff --git a/example/snippets/credit_card_example.cpp b/example/snippets/credit_card_example.cpp index cb7f8d52..1620d8cc 100644 --- a/example/snippets/credit_card_example.cpp +++ b/example/snippets/credit_card_example.cpp @@ -16,8 +16,8 @@ * DESCRIPTION: Credit card number formatting code. */ -#include #include +#include bool validate_card_format(const std::string& s) { diff --git a/example/snippets/partial_regex_grep.cpp b/example/snippets/partial_regex_grep.cpp index 5d1fca07..9934ebc5 100644 --- a/example/snippets/partial_regex_grep.cpp +++ b/example/snippets/partial_regex_grep.cpp @@ -16,12 +16,12 @@ * DESCRIPTION: Search example using partial matches. */ +#include #include #include #include #include #include -#include #ifdef BOOST_NO_STDC_NAMESPACE namespace std{ using ::memmove; } diff --git a/example/snippets/partial_regex_iterate.cpp b/example/snippets/partial_regex_iterate.cpp index 065438ab..62f67dd2 100644 --- a/example/snippets/partial_regex_iterate.cpp +++ b/example/snippets/partial_regex_iterate.cpp @@ -16,12 +16,12 @@ * DESCRIPTION: Search example using partial matches. */ +#include #include #include #include #include #include -#include #ifdef BOOST_NO_STDC_NAMESPACE namespace std{ using ::memmove; } diff --git a/example/snippets/partial_regex_match.cpp b/example/snippets/partial_regex_match.cpp index 36d23144..096072bf 100644 --- a/example/snippets/partial_regex_match.cpp +++ b/example/snippets/partial_regex_match.cpp @@ -16,9 +16,9 @@ * DESCRIPTION: regex_match example using partial matches. */ +#include #include #include -#include boost::regex e("(\\d{3,4})[- ]?(\\d{4})[- ]?(\\d{4})[- ]?(\\d{4})"); diff --git a/example/snippets/regex_grep_example_1.cpp b/example/snippets/regex_grep_example_1.cpp index e0f3f3e8..2878f578 100644 --- a/example/snippets/regex_grep_example_1.cpp +++ b/example/snippets/regex_grep_example_1.cpp @@ -16,9 +16,9 @@ * DESCRIPTION: regex_grep example 1: searches a cpp file for class definitions. */ +#include #include #include -#include // purpose: // takes the contents of a file in the form of a string diff --git a/example/snippets/regex_grep_example_2.cpp b/example/snippets/regex_grep_example_2.cpp index f012e566..b5222c2d 100644 --- a/example/snippets/regex_grep_example_2.cpp +++ b/example/snippets/regex_grep_example_2.cpp @@ -17,6 +17,7 @@ * using a global callback function. */ +#include #include #include #include diff --git a/example/snippets/regex_grep_example_3.cpp b/example/snippets/regex_grep_example_3.cpp index 5bb3fd0a..9097dfda 100644 --- a/example/snippets/regex_grep_example_3.cpp +++ b/example/snippets/regex_grep_example_3.cpp @@ -17,9 +17,9 @@ * using a bound member function callback. */ +#include #include #include -#include #include #include diff --git a/example/snippets/regex_grep_example_4.cpp b/example/snippets/regex_grep_example_4.cpp index 5217f1c1..533d896e 100644 --- a/example/snippets/regex_grep_example_4.cpp +++ b/example/snippets/regex_grep_example_4.cpp @@ -19,9 +19,9 @@ #ifdef __BORLANDC__ +#include #include #include -#include #include // purpose: diff --git a/example/snippets/regex_iterator_example.cpp b/example/snippets/regex_iterator_example.cpp index 3fe1420d..101052f1 100644 --- a/example/snippets/regex_iterator_example.cpp +++ b/example/snippets/regex_iterator_example.cpp @@ -17,11 +17,11 @@ * using global data. */ +#include #include #include #include #include -#include using namespace std; diff --git a/example/snippets/regex_match_example.cpp b/example/snippets/regex_match_example.cpp index f714f94b..dd10de4d 100644 --- a/example/snippets/regex_match_example.cpp +++ b/example/snippets/regex_match_example.cpp @@ -16,9 +16,9 @@ * DESCRIPTION: ftp based regex_match example. */ +#include #include #include -#include #include #include diff --git a/example/snippets/regex_merge_example.cpp b/example/snippets/regex_merge_example.cpp index fcc4f5f7..cb8b493c 100644 --- a/example/snippets/regex_merge_example.cpp +++ b/example/snippets/regex_merge_example.cpp @@ -17,12 +17,12 @@ * converts a C++ file to syntax highlighted HTML. */ +#include #include #include #include #include #include -#include #include #include diff --git a/example/snippets/regex_replace_example.cpp b/example/snippets/regex_replace_example.cpp index 3120453c..19331ab8 100644 --- a/example/snippets/regex_replace_example.cpp +++ b/example/snippets/regex_replace_example.cpp @@ -17,12 +17,12 @@ * converts a C++ file to syntax highlighted HTML. */ +#include #include #include #include #include #include -#include #include #include diff --git a/example/snippets/regex_search_example.cpp b/example/snippets/regex_search_example.cpp index 761a11b2..ee9cd90f 100644 --- a/example/snippets/regex_search_example.cpp +++ b/example/snippets/regex_search_example.cpp @@ -16,9 +16,9 @@ * DESCRIPTION: regex_search example: searches a cpp file for class definitions. */ +#include #include #include -#include // purpose: // takes the contents of a file in the form of a string diff --git a/example/snippets/regex_split_example_1.cpp b/example/snippets/regex_split_example_1.cpp index 4db5bdd0..df2ef96b 100644 --- a/example/snippets/regex_split_example_1.cpp +++ b/example/snippets/regex_split_example_1.cpp @@ -17,8 +17,8 @@ */ -#include #include +#include unsigned tokenise(std::list& l, std::string& s) diff --git a/example/snippets/regex_split_example_2.cpp b/example/snippets/regex_split_example_2.cpp index 205e588c..ad735022 100644 --- a/example/snippets/regex_split_example_2.cpp +++ b/example/snippets/regex_split_example_2.cpp @@ -17,11 +17,11 @@ */ +#include #include #include #include #include -#include boost::regex e("<\\s*A\\s+[^>]*href\\s*=\\s*\"([^\"]*)\"", boost::regex::normal | boost::regbase::icase); diff --git a/example/snippets/regex_token_iterator_eg_2.cpp b/example/snippets/regex_token_iterator_eg_2.cpp index e3e43de9..3458ce4d 100644 --- a/example/snippets/regex_token_iterator_eg_2.cpp +++ b/example/snippets/regex_token_iterator_eg_2.cpp @@ -17,10 +17,10 @@ */ +#include #include #include #include -#include boost::regex e("<\\s*A\\s+[^>]*href\\s*=\\s*\"([^\"]*)\"", boost::regex::normal | boost::regbase::icase); diff --git a/example/timer/regex_timer.cpp b/example/timer/regex_timer.cpp index 630eddd2..a6924237 100644 --- a/example/timer/regex_timer.cpp +++ b/example/timer/regex_timer.cpp @@ -13,6 +13,12 @@ #pragma warning(disable: 4996 4127) #endif +#include +#include +#include +#include +#include + #include #include #include @@ -35,12 +41,6 @@ using std::streambuf; using std::getline; #endif -#include -#include -#include -#include -#include - #if defined(_WIN32) && defined(BOOST_REGEX_USE_WIN32_LOCALE) #include #endif diff --git a/include/boost/regex/icu.hpp b/include/boost/regex/icu.hpp index f1ca99c9..cdae1c8b 100644 --- a/include/boost/regex/icu.hpp +++ b/include/boost/regex/icu.hpp @@ -19,6 +19,7 @@ #ifndef BOOST_REGEX_ICU_HPP #define BOOST_REGEX_ICU_HPP +#include #include #include #include diff --git a/include/boost/regex/pending/object_cache.hpp b/include/boost/regex/pending/object_cache.hpp index d47fbba9..c47862f0 100644 --- a/include/boost/regex/pending/object_cache.hpp +++ b/include/boost/regex/pending/object_cache.hpp @@ -19,12 +19,12 @@ #ifndef BOOST_REGEX_OBJECT_CACHE_HPP #define BOOST_REGEX_OBJECT_CACHE_HPP +#include +#include #include #include #include #include -#include -#include #ifdef BOOST_HAS_THREADS #include #endif diff --git a/include/boost/regex/v4/regex_workaround.hpp b/include/boost/regex/v4/regex_workaround.hpp index f900720b..f245f90d 100644 --- a/include/boost/regex/v4/regex_workaround.hpp +++ b/include/boost/regex/v4/regex_workaround.hpp @@ -19,7 +19,7 @@ #ifndef BOOST_REGEX_WORKAROUND_HPP #define BOOST_REGEX_WORKAROUND_HPP - +#include #include #include #include diff --git a/test/c_compiler_checks/wide_posix_api_check.c b/test/c_compiler_checks/wide_posix_api_check.c index c9ab85bb..096d929a 100644 --- a/test/c_compiler_checks/wide_posix_api_check.c +++ b/test/c_compiler_checks/wide_posix_api_check.c @@ -20,11 +20,11 @@ #define UNICODE #define _UNICODE +#include #include #include #include #include -#include #ifndef BOOST_NO_WREGEX #include diff --git a/test/pathology/bad_expression_test.cpp b/test/pathology/bad_expression_test.cpp index bba20cda..6e701539 100644 --- a/test/pathology/bad_expression_test.cpp +++ b/test/pathology/bad_expression_test.cpp @@ -16,10 +16,10 @@ * DESCRIPTION: Test for indefinite recursion and/or stack overrun. */ -#include #include #include #include "../test_macros.hpp" +#include #ifdef BOOST_INTEL #pragma warning(disable:1418 981 983 383) diff --git a/test/pathology/recursion_test.cpp b/test/pathology/recursion_test.cpp index 46b86f41..c0438e6e 100644 --- a/test/pathology/recursion_test.cpp +++ b/test/pathology/recursion_test.cpp @@ -16,10 +16,10 @@ * DESCRIPTION: Test for indefinite recursion and/or stack overrun. */ -#include #include #include #include "../test_macros.hpp" +#include #ifdef BOOST_INTEL #pragma warning(disable:1418 981 983 383) diff --git a/test/static_mutex/static_mutex_test.cpp b/test/static_mutex/static_mutex_test.cpp index 871a1d90..f029a4be 100644 --- a/test/static_mutex/static_mutex_test.cpp +++ b/test/static_mutex/static_mutex_test.cpp @@ -16,11 +16,11 @@ * DESCRIPTION: test program for boost::static_mutex. */ -#include -#include #include #include #include +#include +#include // // we cannot use the regular Boost.Test in here: it is not thread safe diff --git a/tools/generate/tables.cpp b/tools/generate/tables.cpp index 34d1f9f7..dae31de0 100644 --- a/tools/generate/tables.cpp +++ b/tools/generate/tables.cpp @@ -17,13 +17,13 @@ * paste into regex source. */ +#include #include #include #include #include #include #include -#include std::string g_char_type; std::string g_data_type; From 881a1572434a5360ba235648f04a523b25d20406 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 7 Oct 2017 09:47:19 +0100 Subject: [PATCH 24/27] Regex: Fix integer overflow in expression parsing. See: https://oss-fuzz.com/v2/testcase-detail/6189682419302400?noredirect=1 --- include/boost/regex/v4/basic_regex_parser.hpp | 5 +++++ include/boost/regex/v4/regex_traits_defaults.hpp | 3 +++ 2 files changed, 8 insertions(+) diff --git a/include/boost/regex/v4/basic_regex_parser.hpp b/include/boost/regex/v4/basic_regex_parser.hpp index 4ab1670e..8889db7e 100644 --- a/include/boost/regex/v4/basic_regex_parser.hpp +++ b/include/boost/regex/v4/basic_regex_parser.hpp @@ -2070,6 +2070,11 @@ insert_recursion: fail(regex_constants::error_perl_extension, m_position - m_base, "An invalid or unterminated recursive sub-expression."); return false; } + if ((std::numeric_limits::max)() - m_mark_count < v) + { + fail(regex_constants::error_perl_extension, m_position - m_base, "An invalid or unterminated recursive sub-expression."); + return false; + } v += m_mark_count; goto insert_recursion; case regex_constants::syntax_dash: diff --git a/include/boost/regex/v4/regex_traits_defaults.hpp b/include/boost/regex/v4/regex_traits_defaults.hpp index d5107882..df9922df 100644 --- a/include/boost/regex/v4/regex_traits_defaults.hpp +++ b/include/boost/regex/v4/regex_traits_defaults.hpp @@ -307,6 +307,7 @@ template boost::intmax_t global_toi(const charT*& p1, const charT* p2, int radix, const traits& t) { (void)t; // warning suppression + boost::intmax_t limit = (std::numeric_limits::max)() / radix; boost::intmax_t next_value = t.value(*p1, radix); if((p1 == p2) || (next_value < 0) || (next_value >= radix)) return -1; @@ -319,6 +320,8 @@ boost::intmax_t global_toi(const charT*& p1, const charT* p2, int radix, const t result *= radix; result += next_value; ++p1; + if (result > limit) + return -1; } return result; } From f592693c9b50765a4db421d53b6e2e04c45a2ee6 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 7 Oct 2017 17:23:59 +0100 Subject: [PATCH 25/27] Regex: Fix potential negation of INT_MIN, see https://oss-fuzz.com/v2/testcase-detail/6646578892767232?noredirect=1. --- include/boost/regex/v4/perl_matcher_common.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/regex/v4/perl_matcher_common.hpp b/include/boost/regex/v4/perl_matcher_common.hpp index f08e9d43..a0973da9 100644 --- a/include/boost/regex/v4/perl_matcher_common.hpp +++ b/include/boost/regex/v4/perl_matcher_common.hpp @@ -777,7 +777,7 @@ inline bool perl_matcher::match_assert_backref( { // Have we recursed into subexpression "index"? // If index == 0 then check for any recursion at all, otherwise for recursion to -index-1. - int idx = -index-1; + int idx = -(index+1); if(idx >= 10000) { named_subexpressions::range_type r = re.get_data().equal_range(idx); From dc74e145d95ad9162c2c1b64a1877f9cfb8a437e Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 7 Oct 2017 17:24:34 +0100 Subject: [PATCH 26/27] Try and fix travis CI configuration issue. --- .travis.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.travis.yml b/.travis.yml index 56de8e01..6aba326f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -275,6 +275,7 @@ matrix: apt: packages: - clang-3.8 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 @@ -285,6 +286,7 @@ matrix: apt: packages: - clang-3.8 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 @@ -295,6 +297,7 @@ matrix: apt: packages: - clang-3.9 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.9 @@ -305,6 +308,7 @@ matrix: apt: packages: - clang-3.9 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.9 @@ -315,6 +319,7 @@ matrix: apt: packages: - clang-3.9 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.9 @@ -325,6 +330,7 @@ matrix: apt: packages: - clang-3.9 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.9 From f343cab680d1d3c107d3ac6526cbad3fc57899a8 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 8 Oct 2017 11:52:54 +0100 Subject: [PATCH 27/27] Regex: Fix handling of repeats when mod_x is in effect. See https://oss-fuzz.com/v2/testcase-detail/6420486177161216?noredirect=1 --- include/boost/regex/v4/basic_regex_parser.hpp | 14 +++++++++++++- test/regress/test_simple_repeats.cpp | 10 ++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/include/boost/regex/v4/basic_regex_parser.hpp b/include/boost/regex/v4/basic_regex_parser.hpp index 8889db7e..ce4abf7c 100644 --- a/include/boost/regex/v4/basic_regex_parser.hpp +++ b/include/boost/regex/v4/basic_regex_parser.hpp @@ -971,7 +971,13 @@ bool basic_regex_parser::parse_repeat(std::size_t low, std::size_ ) { // OK we have a perl or emacs regex, check for a '?': - if(this->m_traits.syntax_type(*m_position) == regex_constants::syntax_question) + if ((this->flags() & (regbase::main_option_type | regbase::mod_x | regbase::no_perl_ex)) == regbase::mod_x) + { + // whitespace skip: + while ((m_position != m_end) && this->m_traits.isctype(*m_position, this->m_mask_space)) + ++m_position; + } + if((m_position != m_end) && (this->m_traits.syntax_type(*m_position) == regex_constants::syntax_question)) { greedy = false; ++m_position; @@ -1064,6 +1070,12 @@ bool basic_regex_parser::parse_repeat(std::size_t low, std::size_ // Check for illegal following quantifier, we have to do this here, because // the extra states we insert below circumvents our usual error checking :-( // + if ((this->flags() & (regbase::main_option_type | regbase::mod_x | regbase::no_perl_ex)) == regbase::mod_x) + { + // whitespace skip: + while ((m_position != m_end) && this->m_traits.isctype(*m_position, this->m_mask_space)) + ++m_position; + } switch(this->m_traits.syntax_type(*m_position)) { case regex_constants::syntax_star: diff --git a/test/regress/test_simple_repeats.cpp b/test/regress/test_simple_repeats.cpp index 3fbed7a4..1a73fde6 100644 --- a/test/regress/test_simple_repeats.cpp +++ b/test/regress/test_simple_repeats.cpp @@ -486,5 +486,15 @@ void test_pocessive_repeats() TEST_INVALID_REGEX("\\d*++", perl); TEST_INVALID_REGEX("\\d?++", perl); TEST_INVALID_REGEX("\\d{1,2}++", perl); + + TEST_REGEX_SEARCH("(ab +)", perl|mod_x, "abbb", match_default, make_array(0, 4, 0, 4, -2, -2)); + TEST_REGEX_SEARCH("(ab +?)", perl | mod_x, "abbb", match_default, make_array(0, 2, 0, 2, -2, -2)); + TEST_REGEX_SEARCH("(ab + ?)", perl | mod_x, "abbb", match_default, make_array(0, 2, 0, 2, -2, -2)); + TEST_REGEX_SEARCH("(ab ++)", perl | mod_x, "abbb", match_default, make_array(0, 4, 0, 4, -2, -2)); + TEST_REGEX_SEARCH("(ab + +)", perl | mod_x, "abbb", match_default, make_array(0, 4, 0, 4, -2, -2)); + TEST_INVALID_REGEX("(ab + ++)", perl | mod_x); + TEST_INVALID_REGEX("(ab + + +)", perl | mod_x); + TEST_INVALID_REGEX("(ab + + ?)", perl | mod_x); + }