From 5fa0354cd81ae1c0c92821e0f527ef90bbbdb87a Mon Sep 17 00:00:00 2001
From: Gaurav
Date: Tue, 20 Oct 2015 14:54:48 +0530
Subject: [PATCH 01/14] Check return value of sprintf again.
At other places return value of sprintf is checked, but missed here.
---
src/posix_api.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/posix_api.cpp b/src/posix_api.cpp
index 8a803b3c..4640ea13 100644
--- a/src/posix_api.cpp
+++ b/src/posix_api.cpp
@@ -185,10 +185,12 @@ BOOST_REGEX_DECL regsize_t BOOST_REGEX_CCALL regerrorA(int code, const regex_tA*
}
}
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(_WIN32_WCE) && !defined(UNDER_CE)
- (::sprintf_s)(localbuf, 5, "%d", 0);
+ int r = (::sprintf_s)(localbuf, 5, "%d", 0);
#else
- (std::sprintf)(localbuf, "%d", 0);
+ int r = (std::sprintf)(localbuf, "%d", 0);
#endif
+ if(r < 0)
+ return 0; // sprintf failed
if(std::strlen(localbuf) < buf_size)
re_detail::strcpy_s(buf, buf_size, localbuf);
return std::strlen(localbuf) + 1;
From e5986b8f762a2d1c19876ad7583023517338dbfb Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Thu, 22 Oct 2015 11:29:55 +0100
Subject: [PATCH 02/14] Tentative VC7.1 workaround.
---
include/boost/regex/v4/match_flags.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/regex/v4/match_flags.hpp b/include/boost/regex/v4/match_flags.hpp
index e21de6cf..5fa0b075 100644
--- a/include/boost/regex/v4/match_flags.hpp
+++ b/include/boost/regex/v4/match_flags.hpp
@@ -71,7 +71,7 @@ typedef enum _match_flags
} match_flags;
-#if defined(__BORLANDC__)
+#if defined(__BORLANDC__) || BOOST_WORKAROUND(BOOST_MSVC, <= 1310)
typedef unsigned long match_flag_type;
#else
typedef match_flags match_flag_type;
From b4541fa88efeff69c669536a02ba4ea77597cf3a Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Thu, 22 Oct 2015 13:33:25 +0100
Subject: [PATCH 03/14] Qualify some ambiguous names.
---
test/regress/basic_tests.cpp | 20 ++++++++++----------
test/regress/test_replace.cpp | 4 ++--
test/regress/test_simple_repeats.cpp | 6 +++---
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/test/regress/basic_tests.cpp b/test/regress/basic_tests.cpp
index 784c2b99..a1251f9b 100644
--- a/test/regress/basic_tests.cpp
+++ b/test/regress/basic_tests.cpp
@@ -135,16 +135,16 @@ void test_partial_match()
TEST_REGEX_SEARCH("\\w*?", perl, "aaa", match_default|match_partial, make_array(0, 3, -2, -2));
TEST_REGEX_SEARCH("(\\w)*?", perl, "aaa", match_default|match_partial, make_array(0, 3, -2, -2));
- TEST_REGEX_SEARCH("(xyz)(.*)abc", extended, "xyzaaab", match_default|match_partial, make_array(0, 7, -2, -2));
- TEST_REGEX_SEARCH("(xyz)(.*)abc", extended, "xyz", match_default|match_partial, make_array(0, 3, -2, -2));
- TEST_REGEX_SEARCH("(xyz)(.*)abc", extended, "xy", match_default|match_partial, make_array(0, 2, -2, -2));
- TEST_REGEX_SEARCH("(xyz)(.*)abc", extended, "x", match_default|match_partial, make_array(0, 1, -2, -2));
- TEST_REGEX_SEARCH("(xyz)(.*)abc", extended, "", match_default|match_partial, make_array(-2, -2));
- TEST_REGEX_SEARCH("(xyz)(.*)abc", extended, "aaaa", match_default|match_partial, make_array(-2, -2));
- TEST_REGEX_SEARCH(".abc", extended, "aaab", match_default|match_partial, make_array(1, 4, -2, -2));
- TEST_REGEX_SEARCH("a[_]", extended, "xxa", match_default|match_partial, make_array(2, 3, -2, -2));
- TEST_REGEX_SEARCH(".{4,}", extended, "xxa", match_default|match_partial, make_array(0, 3, -2, -2));
- TEST_REGEX_SEARCH(".{4,}", extended, "xxa", match_default|match_partial|match_not_dot_null, make_array(0, 3, -2, -2));
+ TEST_REGEX_SEARCH("(xyz)(.*)abc", boost::regex::extended, "xyzaaab", match_default|match_partial, make_array(0, 7, -2, -2));
+ TEST_REGEX_SEARCH("(xyz)(.*)abc", boost::regex::extended, "xyz", match_default|match_partial, make_array(0, 3, -2, -2));
+ TEST_REGEX_SEARCH("(xyz)(.*)abc", boost::regex::extended, "xy", match_default|match_partial, make_array(0, 2, -2, -2));
+ TEST_REGEX_SEARCH("(xyz)(.*)abc", boost::regex::extended, "x", match_default|match_partial, make_array(0, 1, -2, -2));
+ TEST_REGEX_SEARCH("(xyz)(.*)abc", boost::regex::extended, "", match_default|match_partial, make_array(-2, -2));
+ TEST_REGEX_SEARCH("(xyz)(.*)abc", boost::regex::extended, "aaaa", match_default|match_partial, make_array(-2, -2));
+ TEST_REGEX_SEARCH(".abc", boost::regex::extended, "aaab", match_default|match_partial, make_array(1, 4, -2, -2));
+ TEST_REGEX_SEARCH("a[_]", boost::regex::extended, "xxa", match_default|match_partial, make_array(2, 3, -2, -2));
+ TEST_REGEX_SEARCH(".{4,}", boost::regex::extended, "xxa", match_default|match_partial, make_array(0, 3, -2, -2));
+ TEST_REGEX_SEARCH(".{4,}", boost::regex::extended, "xxa", match_default|match_partial|match_not_dot_null, make_array(0, 3, -2, -2));
}
void test_nosubs()
diff --git a/test/regress/test_replace.cpp b/test/regress/test_replace.cpp
index be518268..635e6e30 100644
--- a/test/regress/test_replace.cpp
+++ b/test/regress/test_replace.cpp
@@ -192,7 +192,7 @@ void test_replace()
// See https://svn.boost.org/trac/boost/ticket/589
TEST_REGEX_REPLACE("(a*)", perl, "aabb", match_default, "{$1}", "{aa}{}b{}b{}");
- TEST_REGEX_REPLACE("(a*)", extended, "aabb", match_default, "{$1}", "{aa}{}b{}b{}");
- TEST_REGEX_REPLACE("(a*)", extended, "aabb", match_default|match_posix, "{$1}", "{aa}b{}b{}");
+ TEST_REGEX_REPLACE("(a*)", boost::regex::extended, "aabb", match_default, "{$1}", "{aa}{}b{}b{}");
+ TEST_REGEX_REPLACE("(a*)", boost::regex::extended, "aabb", match_default|match_posix, "{$1}", "{aa}b{}b{}");
}
diff --git a/test/regress/test_simple_repeats.cpp b/test/regress/test_simple_repeats.cpp
index 1691673a..3fbed7a4 100644
--- a/test/regress/test_simple_repeats.cpp
+++ b/test/regress/test_simple_repeats.cpp
@@ -174,8 +174,8 @@ void test_simple_repeats()
TEST_REGEX_SEARCH("^a(?:bc)?", perl, "abcbc", match_any|match_all, make_array(-2, -2));
TEST_REGEX_SEARCH("a}", perl, "a}", match_default, make_array(0, 2, -2, -2));
TEST_REGEX_SEARCH("a{12b", perl, "a{12bc", match_default, make_array(0, 5, -2, -2));
- TEST_INVALID_REGEX("a{b", extended);
- TEST_INVALID_REGEX("a}b", extended);
+ TEST_INVALID_REGEX("a{b", boost::regex::extended);
+ TEST_INVALID_REGEX("a}b", boost::regex::extended);
test_simple_repeats2();
}
@@ -233,7 +233,7 @@ void test_simple_repeats2()
void test_fast_repeats()
{
using namespace boost::regex_constants;
- // extended repeat checking to exercise new algorithms:
+ // boost::regex::extended repeat checking to exercise new algorithms:
TEST_REGEX_SEARCH("ab.*xy", perl, "abxy_", match_default, make_array(0, 4, -2, -2));
TEST_REGEX_SEARCH("ab.*xy", perl, "ab_xy_", match_default, make_array(0, 5, -2, -2));
TEST_REGEX_SEARCH("ab.*xy", perl, "abxy", match_default, make_array(0, 4, -2, -2));
From afca81cd76395d39c6df502027f276e7ae6b7ae0 Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Thu, 22 Oct 2015 18:02:43 +0100
Subject: [PATCH 04/14] disambiguate "extended"
---
test/regress/test_perl_ex.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/regress/test_perl_ex.cpp b/test/regress/test_perl_ex.cpp
index 4aad26d4..2f081e2d 100644
--- a/test/regress/test_perl_ex.cpp
+++ b/test/regress/test_perl_ex.cpp
@@ -167,9 +167,9 @@ void test_options()
TEST_REGEX_SEARCH("^ a\\ b[c ]d $", perl|mod_x, "ab d", match_default, make_array(-2, -2));
TEST_REGEX_SEARCH("^1234(?# test newlines\n inside)", perl|mod_x, "1234", match_default, make_array(0, 4, -2, -2));
- TEST_REGEX_SEARCH("^1234 #comment in extended re\n", perl|mod_x, "1234", match_default, make_array(0, 4, -2, -2));
+ TEST_REGEX_SEARCH("^1234 #comment in boost::regex::extended re\n", perl|mod_x, "1234", match_default, make_array(0, 4, -2, -2));
TEST_REGEX_SEARCH("#rhubarb\n abcd", perl|mod_x, "abcd", match_default, make_array(0, 4, -2, -2));
- TEST_REGEX_SEARCH("^1234 #comment in extended re\r\n", perl|mod_x, "1234", match_default, make_array(0, 4, -2, -2));
+ TEST_REGEX_SEARCH("^1234 #comment in boost::regex::extended re\r\n", perl|mod_x, "1234", match_default, make_array(0, 4, -2, -2));
TEST_REGEX_SEARCH("#rhubarb\r\n abcd", perl|mod_x, "abcd", match_default, make_array(0, 4, -2, -2));
TEST_REGEX_SEARCH("^abcd#rhubarb", perl|mod_x, "abcd", match_default, make_array(0, 4, -2, -2));
TEST_REGEX_SEARCH("^abcd#rhubarb", perl, "abcd#rhubarb", match_default, make_array(0, 12, -2, -2));
From 7cbef4a79bf784184cac69ec7edb4b3e27c94593 Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Thu, 22 Oct 2015 18:03:03 +0100
Subject: [PATCH 05/14] Add missing include.
---
include/boost/regex/v4/match_flags.hpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/boost/regex/v4/match_flags.hpp b/include/boost/regex/v4/match_flags.hpp
index 5fa0b075..1c0046b7 100644
--- a/include/boost/regex/v4/match_flags.hpp
+++ b/include/boost/regex/v4/match_flags.hpp
@@ -22,6 +22,7 @@
#ifdef __cplusplus
# include
#endif
+#include
#ifdef __cplusplus
namespace boost{
From 6b36c9a7c67082491c950838fd1cf65713cf5d9b Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Fri, 23 Oct 2015 13:07:04 +0100
Subject: [PATCH 06/14] Fix valgrind detected issues
---
test/regress/test_locale.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/test/regress/test_locale.cpp b/test/regress/test_locale.cpp
index f1a6fa21..13aa85b9 100644
--- a/test/regress/test_locale.cpp
+++ b/test/regress/test_locale.cpp
@@ -64,6 +64,8 @@ test_locale::test_locale(const char* c_name, boost::uint32_t lcid)
std::cout << "The C++ locale: " << c_name << " is not available and will not be tested." << std::endl;
}
#else
+ m_old_cpp_locale = s_cpp_locale_inst;
+ m_old_cpp_state = s_cpp_locale;
s_cpp_locale = no_test;
#endif
From e824ddb35b856860a3c723738e8044b9d5bef9b1 Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Fri, 23 Oct 2015 13:27:01 +0100
Subject: [PATCH 07/14] Remove redundant check and make it an assert.
---
include/boost/regex/v4/fileiter.hpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/boost/regex/v4/fileiter.hpp b/include/boost/regex/v4/fileiter.hpp
index 4873a0a8..256a7e46 100644
--- a/include/boost/regex/v4/fileiter.hpp
+++ b/include/boost/regex/v4/fileiter.hpp
@@ -225,11 +225,11 @@ public:
mapfile_iterator() { node = 0; file = 0; offset = 0; }
mapfile_iterator(const mapfile* f, long arg_position)
{
+ BOOST_ASSERT(f);
file = f;
node = f->_first + arg_position / mapfile::buf_size;
offset = arg_position % mapfile::buf_size;
- if(file)
- file->lock(node);
+ file->lock(node);
}
mapfile_iterator(const mapfile_iterator& i)
{
From 2a525e5aa6213844fe8ea63cbb33e12e639c2402 Mon Sep 17 00:00:00 2001
From: Gaurav
Date: Tue, 3 Nov 2015 14:12:17 +0530
Subject: [PATCH 08/14] avoid duplicate check of markid.
Markid is already checked to be >0.
---
include/boost/regex/v4/basic_regex_parser.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/regex/v4/basic_regex_parser.hpp b/include/boost/regex/v4/basic_regex_parser.hpp
index 4a80ab9c..d097eed9 100644
--- a/include/boost/regex/v4/basic_regex_parser.hpp
+++ b/include/boost/regex/v4/basic_regex_parser.hpp
@@ -2650,7 +2650,7 @@ option_group_jump:
//
// allow backrefs to this mark:
//
- if((markid > 0) && (markid < (int)(sizeof(unsigned) * CHAR_BIT)))
+ if(markid < (int)(sizeof(unsigned) * CHAR_BIT))
this->m_backrefs |= 1u << (markid - 1);
}
return true;
From eb729f6557f04475200fd78feb2cb43c9d6bbbe3 Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Sat, 7 Nov 2015 09:13:35 +0000
Subject: [PATCH 09/14] Disable all Win32 API usage on Windows runtime for now,
but see also: https://github.com/boostorg/regex/pull/22 for a possible more
compete solution.
---
include/boost/regex/config.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/boost/regex/config.hpp b/include/boost/regex/config.hpp
index 4fd1fd94..9dc48dc8 100644
--- a/include/boost/regex/config.hpp
+++ b/include/boost/regex/config.hpp
@@ -149,7 +149,7 @@
/* disable our own file-iterators and mapfiles if we can't
* support them: */
#if defined(_WIN32)
-# if defined(BOOST_REGEX_NO_W32) || BOOST_PLAT_WINDOWS_STORE
+# if defined(BOOST_REGEX_NO_W32) || BOOST_PLAT_WINDOWS_RUNTIME
# define BOOST_REGEX_NO_FILEITER
# endif
#else // defined(_WIN32)
From b9f55efe9831a62b8842afea8fbf5a8363935729 Mon Sep 17 00:00:00 2001
From: Yucheng Low
Date: Tue, 8 Dec 2015 21:17:50 -0800
Subject: [PATCH 10/14] Made the mem_cache_block lockfree
This *significantly* improves parallel performance of regex.
Currently if I have a large number of threads all using regexes; even if
they are using idependent regex objects, performance is still extremely poor
due to the lock inside of the mem_block_cache.
---
include/boost/regex/v4/mem_block_cache.hpp | 72 ++++++++--------------
src/regex.cpp | 4 +-
2 files changed, 28 insertions(+), 48 deletions(-)
diff --git a/include/boost/regex/v4/mem_block_cache.hpp b/include/boost/regex/v4/mem_block_cache.hpp
index dc549150..6ef9e403 100644
--- a/include/boost/regex/v4/mem_block_cache.hpp
+++ b/include/boost/regex/v4/mem_block_cache.hpp
@@ -19,9 +19,7 @@
#define BOOST_REGEX_V4_MEM_BLOCK_CACHE_HPP
#include
-#ifdef BOOST_HAS_THREADS
-#include
-#endif
+#include
#ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_PREFIX
@@ -30,59 +28,41 @@
namespace boost{
namespace BOOST_REGEX_DETAIL_NS{
-struct mem_block_node
-{
- mem_block_node* next;
-};
-
struct mem_block_cache
{
- // this member has to be statically initialsed:
- mem_block_node* next;
- unsigned cached_blocks;
-#ifdef BOOST_HAS_THREADS
- boost::static_mutex mut;
-#endif
+ boost::atomic cache[BOOST_REGEX_MAX_CACHE_BLOCKS];
+ mem_block_cache() {
+ for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
+ cache[i].store(NULL);
+ }
+
+ }
~mem_block_cache()
{
- while(next)
- {
- mem_block_node* old = next;
- next = next->next;
- ::operator delete(old);
- }
+ for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
+ if (cache[i].load()) ::operator delete(cache[i].load());
+ }
}
void* get()
{
-#ifdef BOOST_HAS_THREADS
- boost::static_mutex::scoped_lock g(mut);
-#endif
- if(next)
- {
- mem_block_node* result = next;
- next = next->next;
- --cached_blocks;
- return result;
- }
- return ::operator new(BOOST_REGEX_BLOCKSIZE);
+ for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
+ void* p = cache[i].load();
+ if (p != NULL) {
+ if (cache[i].compare_exchange_strong(p, NULL)) return p;
+ }
+ }
+ return ::operator new(BOOST_REGEX_BLOCKSIZE);
}
- void put(void* p)
+ void put(void* ptr)
{
-#ifdef BOOST_HAS_THREADS
- boost::static_mutex::scoped_lock g(mut);
-#endif
- if(cached_blocks >= BOOST_REGEX_MAX_CACHE_BLOCKS)
- {
- ::operator delete(p);
- }
- else
- {
- mem_block_node* old = static_cast(p);
- old->next = next;
- next = old;
- ++cached_blocks;
- }
+ for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
+ void* p = cache[i].load();
+ if (p == NULL) {
+ if (cache[i].compare_exchange_strong(p, ptr)) return;
+ }
+ }
+ ::operator delete(ptr);
}
};
diff --git a/src/regex.cpp b/src/regex.cpp
index 03057aac..054bec69 100644
--- a/src/regex.cpp
+++ b/src/regex.cpp
@@ -192,9 +192,9 @@ BOOST_REGEX_DECL void BOOST_REGEX_CALL put_mem_block(void* p)
#else
#ifdef BOOST_HAS_THREADS
-mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, };
+mem_block_cache block_cache;
#else
-mem_block_cache block_cache = { 0, 0, };
+mem_block_cache block_cache;
#endif
BOOST_REGEX_DECL void* BOOST_REGEX_CALL get_mem_block()
From 3f14031142b64820a7baf4c744638976375fd5d3 Mon Sep 17 00:00:00 2001
From: Yucheng Low
Date: Tue, 15 Dec 2015 14:26:03 -0800
Subject: [PATCH 11/14] Updated with platform checks
---
include/boost/regex/v4/mem_block_cache.hpp | 78 +++++++++++++++++++++-
src/regex.cpp | 6 +-
2 files changed, 81 insertions(+), 3 deletions(-)
diff --git a/include/boost/regex/v4/mem_block_cache.hpp b/include/boost/regex/v4/mem_block_cache.hpp
index 6ef9e403..6703ccf1 100644
--- a/include/boost/regex/v4/mem_block_cache.hpp
+++ b/include/boost/regex/v4/mem_block_cache.hpp
@@ -25,12 +25,26 @@
# include BOOST_ABI_PREFIX
#endif
+#ifdef BOOST_NO_CXX11_HDR_ATOMIC
+ #if BOOST_ATOMIC_POINTER_LOCK_FREE == 2
+ #define BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE
+ #define BOOST_REGEX_ATOMIC_POINTER boost::atomic
+ #endif
+#else // BOOST_NOCXX11_HDR_ATOMIC not defined
+ #include
+ #if ATOMIC_POINTER_LOCK_FREE == 2
+ #define BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE
+ #define BOOST_REGEX_ATOMIC_POINTER std::atomic
+ #endif
+#endif
+
namespace boost{
namespace BOOST_REGEX_DETAIL_NS{
+#ifdef BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE /* lock free implementation */
struct mem_block_cache
{
- boost::atomic cache[BOOST_REGEX_MAX_CACHE_BLOCKS];
+ BOOST_REGEX_ATOMIC_POINTER cache[BOOST_REGEX_MAX_CACHE_BLOCKS];
mem_block_cache() {
for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
@@ -66,6 +80,68 @@ struct mem_block_cache
}
};
+#undef BOOST_REGEX_ATOMIC_POINTER
+
+#else /* lock-based implementation */
+
+
+struct mem_block_node
+{
+ mem_block_node* next;
+};
+
+struct mem_block_cache
+{
+ // this member has to be statically initialsed:
+ mem_block_node* next;
+ unsigned cached_blocks;
+#ifdef BOOST_HAS_THREADS
+ boost::static_mutex mut;
+#endif
+
+ ~mem_block_cache()
+ {
+ while(next)
+ {
+ mem_block_node* old = next;
+ next = next->next;
+ ::operator delete(old);
+ }
+ }
+ void* get()
+ {
+#ifdef BOOST_HAS_THREADS
+ boost::static_mutex::scoped_lock g(mut);
+#endif
+ if(next)
+ {
+ mem_block_node* result = next;
+ next = next->next;
+ --cached_blocks;
+ return result;
+ }
+ return ::operator new(BOOST_REGEX_BLOCKSIZE);
+ }
+ void put(void* p)
+ {
+#ifdef BOOST_HAS_THREADS
+ boost::static_mutex::scoped_lock g(mut);
+#endif
+ if(cached_blocks >= BOOST_REGEX_MAX_CACHE_BLOCKS)
+ {
+ ::operator delete(p);
+ }
+ else
+ {
+ mem_block_node* old = static_cast(p);
+ old->next = next;
+ next = old;
+ ++cached_blocks;
+ }
+ }
+};
+#endif
+
extern mem_block_cache block_cache;
}
diff --git a/src/regex.cpp b/src/regex.cpp
index 054bec69..560d3be2 100644
--- a/src/regex.cpp
+++ b/src/regex.cpp
@@ -191,10 +191,12 @@ BOOST_REGEX_DECL void BOOST_REGEX_CALL put_mem_block(void* p)
#else
-#ifdef BOOST_HAS_THREADS
+#if defined(BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE)
mem_block_cache block_cache;
+#elif defined(BOOST_HAS_THREADS)
+mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, };
#else
-mem_block_cache block_cache;
+mem_block_cache block_cache = { 0, 0, };
#endif
BOOST_REGEX_DECL void* BOOST_REGEX_CALL get_mem_block()
From a0dfd815169138ff5e63b8bcf06ed1d47edcd8f4 Mon Sep 17 00:00:00 2001
From: Yucheng Low
Date: Thu, 31 Dec 2015 15:46:20 -0800
Subject: [PATCH 12/14] Lockfree mem_block_cache only active if std::atomic is
available
---
include/boost/regex/v4/mem_block_cache.hpp | 17 ++---------------
src/regex.cpp | 2 +-
2 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/include/boost/regex/v4/mem_block_cache.hpp b/include/boost/regex/v4/mem_block_cache.hpp
index 6703ccf1..3457e9a5 100644
--- a/include/boost/regex/v4/mem_block_cache.hpp
+++ b/include/boost/regex/v4/mem_block_cache.hpp
@@ -19,18 +19,12 @@
#define BOOST_REGEX_V4_MEM_BLOCK_CACHE_HPP
#include
-#include
#ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_PREFIX
#endif
-#ifdef BOOST_NO_CXX11_HDR_ATOMIC
- #if BOOST_ATOMIC_POINTER_LOCK_FREE == 2
- #define BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE
- #define BOOST_REGEX_ATOMIC_POINTER boost::atomic
- #endif
-#else // BOOST_NOCXX11_HDR_ATOMIC not defined
+#ifndef BOOST_NO_CXX11_HDR_ATOMIC
#include
#if ATOMIC_POINTER_LOCK_FREE == 2
#define BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE
@@ -44,14 +38,8 @@ namespace BOOST_REGEX_DETAIL_NS{
#ifdef BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE /* lock free implementation */
struct mem_block_cache
{
- BOOST_REGEX_ATOMIC_POINTER cache[BOOST_REGEX_MAX_CACHE_BLOCKS];
+ std::atomic cache[BOOST_REGEX_MAX_CACHE_BLOCKS];
- mem_block_cache() {
- for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
- cache[i].store(NULL);
- }
-
- }
~mem_block_cache()
{
for (size_t i = 0;i < BOOST_REGEX_MAX_CACHE_BLOCKS; ++i) {
@@ -80,7 +68,6 @@ struct mem_block_cache
}
};
-#undef BOOST_REGEX_ATOMIC_POINTER
#else /* lock-based implementation */
diff --git a/src/regex.cpp b/src/regex.cpp
index 560d3be2..e9e97627 100644
--- a/src/regex.cpp
+++ b/src/regex.cpp
@@ -192,7 +192,7 @@ BOOST_REGEX_DECL void BOOST_REGEX_CALL put_mem_block(void* p)
#else
#if defined(BOOST_REGEX_MEM_BLOCK_CACHE_LOCK_FREE)
-mem_block_cache block_cache;
+mem_block_cache block_cache = { { {nullptr} } } ;
#elif defined(BOOST_HAS_THREADS)
mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, };
#else
From d8af53e22286a2f75642715690646dc6f5afc5ad Mon Sep 17 00:00:00 2001
From: Yucheng Low
Date: Thu, 31 Dec 2015 15:48:01 -0800
Subject: [PATCH 13/14] restored missing header
---
include/boost/regex/v4/mem_block_cache.hpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/boost/regex/v4/mem_block_cache.hpp b/include/boost/regex/v4/mem_block_cache.hpp
index 3457e9a5..50af421e 100644
--- a/include/boost/regex/v4/mem_block_cache.hpp
+++ b/include/boost/regex/v4/mem_block_cache.hpp
@@ -19,6 +19,9 @@
#define BOOST_REGEX_V4_MEM_BLOCK_CACHE_HPP
#include
+#ifdef BOOST_HAS_THREADS
+#include
+#endif
#ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_PREFIX
From 05dc9f4a44fcc9564e8720ba14727f02bd7e49b9 Mon Sep 17 00:00:00 2001
From: jzmaddock
Date: Sun, 10 Jan 2016 18:44:51 +0000
Subject: [PATCH 14/14] Update docs.
---
doc/history.qbk | 6 ++-
.../boost_regex/background_information.html | 4 +-
.../acknowledgements.html | 2 +-
.../background_information/examples.html | 2 +-
.../background_information/faq.html | 2 +-
.../background_information/futher.html | 2 +-
.../background_information/headers.html | 2 +-
.../background_information/history.html | 46 +++++++++++--------
.../background_information/locale.html | 2 +-
.../background_information/performance.html | 2 +-
...iler_Microsoft_Visual_C_version_14_0_.html | 2 +-
...m_linux_compiler_GNU_C_version_5_1_0_.html | 2 +-
...iler_Microsoft_Visual_C_version_14_0_.html | 2 +-
...m_linux_compiler_GNU_C_version_5_1_0_.html | 2 +-
...iler_Microsoft_Visual_C_version_14_0_.html | 2 +-
...m_linux_compiler_GNU_C_version_5_1_0_.html | 2 +-
...iler_Microsoft_Visual_C_version_14_0_.html | 2 +-
...m_linux_compiler_GNU_C_version_5_1_0_.html | 2 +-
.../background_information/redist.html | 2 +-
.../background_information/standards.html | 2 +-
.../background_information/thread_safety.html | 2 +-
doc/html/boost_regex/captures.html | 4 +-
doc/html/boost_regex/configuration.html | 6 +--
.../boost_regex/configuration/algorithm.html | 2 +-
.../boost_regex/configuration/compiler.html | 2 +-
.../boost_regex/configuration/linkage.html | 2 +-
.../boost_regex/configuration/locale.html | 2 +-
.../boost_regex/configuration/tuning.html | 2 +-
doc/html/boost_regex/format.html | 4 +-
.../format/boost_format_syntax.html | 2 +-
doc/html/boost_regex/format/perl_format.html | 2 +-
doc/html/boost_regex/format/sed_format.html | 2 +-
doc/html/boost_regex/install.html | 4 +-
.../introduction_and_overview.html | 4 +-
doc/html/boost_regex/partial_matches.html | 4 +-
doc/html/boost_regex/ref.html | 4 +-
doc/html/boost_regex/ref/bad_expression.html | 2 +-
doc/html/boost_regex/ref/basic_regex.html | 2 +-
doc/html/boost_regex/ref/concepts.html | 2 +-
.../ref/concepts/charT_concept.html | 2 +-
.../ref/concepts/iterator_concepts.html | 2 +-
.../ref/concepts/traits_concept.html | 2 +-
.../ref/deprecated_interfaces.html | 2 +-
.../ref/deprecated_interfaces/old_regex.html | 2 +-
.../deprecated_interfaces/regex_format.html | 2 +-
.../ref/deprecated_interfaces/regex_grep.html | 2 +-
.../deprecated_interfaces/regex_split.html | 2 +-
doc/html/boost_regex/ref/error_type.html | 2 +-
.../boost_regex/ref/internal_details.html | 2 +-
.../ref/internal_details/uni_iter.html | 2 +-
doc/html/boost_regex/ref/match_flag_type.html | 2 +-
doc/html/boost_regex/ref/match_results.html | 2 +-
doc/html/boost_regex/ref/non_std_strings.html | 2 +-
.../boost_regex/ref/non_std_strings/icu.html | 2 +-
.../ref/non_std_strings/icu/intro.html | 2 +-
.../ref/non_std_strings/icu/unicode_algo.html | 2 +-
.../ref/non_std_strings/icu/unicode_iter.html | 2 +-
.../non_std_strings/icu/unicode_types.html | 2 +-
.../ref/non_std_strings/mfc_strings.html | 2 +-
.../non_std_strings/mfc_strings/mfc_algo.html | 2 +-
.../mfc_strings/mfc_intro.html | 2 +-
.../non_std_strings/mfc_strings/mfc_iter.html | 2 +-
.../mfc_strings/mfc_regex_create.html | 2 +-
.../mfc_strings/mfc_regex_types.html | 2 +-
doc/html/boost_regex/ref/posix.html | 2 +-
doc/html/boost_regex/ref/regex_iterator.html | 2 +-
doc/html/boost_regex/ref/regex_match.html | 2 +-
doc/html/boost_regex/ref/regex_replace.html | 2 +-
doc/html/boost_regex/ref/regex_search.html | 2 +-
.../boost_regex/ref/regex_token_iterator.html | 2 +-
doc/html/boost_regex/ref/regex_traits.html | 2 +-
doc/html/boost_regex/ref/sub_match.html | 2 +-
.../boost_regex/ref/syntax_option_type.html | 2 +-
.../syntax_option_type_basic.html | 2 +-
.../syntax_option_type_extended.html | 2 +-
.../syntax_option_type_literal.html | 2 +-
.../syntax_option_type_overview.html | 2 +-
.../syntax_option_type_perl.html | 2 +-
.../syntax_option_type_synopsis.html | 2 +-
doc/html/boost_regex/syntax.html | 4 +-
.../boost_regex/syntax/basic_extended.html | 2 +-
doc/html/boost_regex/syntax/basic_syntax.html | 2 +-
.../boost_regex/syntax/character_classes.html | 2 +-
.../optional_char_class_names.html | 2 +-
.../character_classes/std_char_classes.html | 2 +-
.../boost_regex/syntax/collating_names.html | 2 +-
.../syntax/collating_names/digraphs.html | 2 +-
.../syntax/collating_names/named_unicode.html | 2 +-
.../collating_names/posix_symbolic_names.html | 2 +-
.../syntax/leftmost_longest_rule.html | 2 +-
doc/html/boost_regex/syntax/perl_syntax.html | 2 +-
doc/html/boost_regex/unicode.html | 4 +-
doc/html/index.html | 8 ++--
doc/regex.qbk | 2 +-
94 files changed, 138 insertions(+), 126 deletions(-)
diff --git a/doc/history.qbk b/doc/history.qbk
index d56ead8b..17231392 100644
--- a/doc/history.qbk
+++ b/doc/history.qbk
@@ -15,7 +15,11 @@ Currently open issues can be viewed [@https://svn.boost.org/trac/boost/query?sta
All issues including closed ones can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here].
-[h4 Boost.Regex-5.1.0]
+[h4 Boost.Regex-5.1.1]
+
+* Change to lockfree implementation of memory cache, see [@https://github.com/boostorg/regex/pull/23 PR#23].
+
+[h4 Boost.Regex-5.1.0 (Boost-1.60.0)]
* Add support for Perl's backtracking control verbs, see [@https://svn.boost.org/trac/boost/ticket/11205 #11205]. Note however, that
(*MARK) and operations on marks are not currently supported.
diff --git a/doc/html/boost_regex/background_information.html b/doc/html/boost_regex/background_information.html
index 81cea425..ccf83eda 100644
--- a/doc/html/boost_regex/background_information.html
+++ b/doc/html/boost_regex/background_information.html
@@ -4,8 +4,8 @@
Background Information
-
-
+
+
diff --git a/doc/html/boost_regex/background_information/acknowledgements.html b/doc/html/boost_regex/background_information/acknowledgements.html
index d8f77968..1844f2ad 100644
--- a/doc/html/boost_regex/background_information/acknowledgements.html
+++ b/doc/html/boost_regex/background_information/acknowledgements.html
@@ -4,7 +4,7 @@
Acknowledgements
-
+
diff --git a/doc/html/boost_regex/background_information/examples.html b/doc/html/boost_regex/background_information/examples.html
index 5427ba94..f8ce5687 100644
--- a/doc/html/boost_regex/background_information/examples.html
+++ b/doc/html/boost_regex/background_information/examples.html
@@ -4,7 +4,7 @@
Test and Example Programs
-
+
diff --git a/doc/html/boost_regex/background_information/faq.html b/doc/html/boost_regex/background_information/faq.html
index 599ee187..f54c918c 100644
--- a/doc/html/boost_regex/background_information/faq.html
+++ b/doc/html/boost_regex/background_information/faq.html
@@ -4,7 +4,7 @@
FAQ
-
+
diff --git a/doc/html/boost_regex/background_information/futher.html b/doc/html/boost_regex/background_information/futher.html
index 7c77de6d..ca17e02b 100644
--- a/doc/html/boost_regex/background_information/futher.html
+++ b/doc/html/boost_regex/background_information/futher.html
@@ -4,7 +4,7 @@
References and Further Information
-
+
diff --git a/doc/html/boost_regex/background_information/headers.html b/doc/html/boost_regex/background_information/headers.html
index 34943b67..bc8c5748 100644
--- a/doc/html/boost_regex/background_information/headers.html
+++ b/doc/html/boost_regex/background_information/headers.html
@@ -4,7 +4,7 @@
Headers
-
+
diff --git a/doc/html/boost_regex/background_information/history.html b/doc/html/boost_regex/background_information/history.html
index 8434f678..21b56489 100644
--- a/doc/html/boost_regex/background_information/history.html
+++ b/doc/html/boost_regex/background_information/history.html
@@ -4,7 +4,7 @@
History
-
+
@@ -37,7 +37,15 @@
+-
+ Change to lockfree implementation of memory cache, see PR#23.
+
+
@@ -91,7 +99,7 @@
@@ -124,14 +132,14 @@
Fixed issue #8569.
@@ -139,7 +147,7 @@
#7644.
@@ -149,7 +157,7 @@
#6346.
@@ -158,7 +166,7 @@
expression.
@@ -168,7 +176,7 @@
#5736.
@@ -180,7 +188,7 @@
#5504.
@@ -198,7 +206,7 @@
#3890
-
@@ -234,7 +242,7 @@
branch resets and recursive regular expressions.
-
Fixed bug in partial matches of bounded repeats of '.'.
diff --git a/doc/html/boost_regex/background_information/locale.html b/doc/html/boost_regex/background_information/locale.html
index eaca9bfa..0ee1bc01 100644
--- a/doc/html/boost_regex/background_information/locale.html
+++ b/doc/html/boost_regex/background_information/locale.html
@@ -4,7 +4,7 @@
Localization
-
+
diff --git a/doc/html/boost_regex/background_information/performance.html b/doc/html/boost_regex/background_information/performance.html
index 6541e861..aa868e17 100644
--- a/doc/html/boost_regex/background_information/performance.html
+++ b/doc/html/boost_regex/background_information/performance.html
@@ -4,7 +4,7 @@
Performance
-
+
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_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index 6d2cda2a..862abe19 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_information/performance/section_Testing_Perl_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing Perl searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
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_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index 239bd1ae..c9bd9ab9 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_information/performance/section_Testing_Perl_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing Perl searches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
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_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index acf3b025..a025f045 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_information/performance/section_Testing_leftmost_longest_searches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing leftmost-longest searches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
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_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index 9be89365..253af96c 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_information/performance/section_Testing_leftmost_longest_searches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing leftmost-longest searches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
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_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index 19e61793..1756715b 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_information/performance/section_Testing_simple_Perl_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing simple Perl matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
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_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index c018996a..0fd68453 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_information/performance/section_Testing_simple_Perl_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing simple Perl matches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
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_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
index 25c0e04a..32487345 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_information/performance/section_Testing_simple_leftmost_longest_matches_platform_Windows_x64_compiler_Microsoft_Visual_C_version_14_0_.html
@@ -4,7 +4,7 @@
Testing simple leftmost-longest matches (platform = Windows x64, compiler = Microsoft Visual C++ version 14.0)
-
+
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_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
index e03446f0..0f010ab6 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_information/performance/section_Testing_simple_leftmost_longest_matches_platform_linux_compiler_GNU_C_version_5_1_0_.html
@@ -4,7 +4,7 @@
Testing simple leftmost-longest matches (platform = linux, compiler = GNU C++ version 5.1.0)
-
+
diff --git a/doc/html/boost_regex/background_information/redist.html b/doc/html/boost_regex/background_information/redist.html
index 12e036b9..c2cf29c3 100644
--- a/doc/html/boost_regex/background_information/redist.html
+++ b/doc/html/boost_regex/background_information/redist.html
@@ -4,7 +4,7 @@
Redistributables
-
+
diff --git a/doc/html/boost_regex/background_information/standards.html b/doc/html/boost_regex/background_information/standards.html
index d595fe68..f73e099e 100644
--- a/doc/html/boost_regex/background_information/standards.html
+++ b/doc/html/boost_regex/background_information/standards.html
@@ -4,7 +4,7 @@
Standards Conformance
-
+
diff --git a/doc/html/boost_regex/background_information/thread_safety.html b/doc/html/boost_regex/background_information/thread_safety.html
index 6ae43523..5aeaad09 100644
--- a/doc/html/boost_regex/background_information/thread_safety.html
+++ b/doc/html/boost_regex/background_information/thread_safety.html
@@ -4,7 +4,7 @@
Thread Safety
-
+
diff --git a/doc/html/boost_regex/captures.html b/doc/html/boost_regex/captures.html
index fcc1f0f0..c308c661 100644
--- a/doc/html/boost_regex/captures.html
+++ b/doc/html/boost_regex/captures.html
@@ -4,8 +4,8 @@
Understanding Marked Sub-Expressions and Captures
-
-
+
+
diff --git a/doc/html/boost_regex/configuration.html b/doc/html/boost_regex/configuration.html
index 3c47c04c..dac4fa3c 100644
--- a/doc/html/boost_regex/configuration.html
+++ b/doc/html/boost_regex/configuration.html
@@ -4,9 +4,9 @@
Configuration
-
-
-
+
+
+
diff --git a/doc/html/boost_regex/configuration/algorithm.html b/doc/html/boost_regex/configuration/algorithm.html
index ac486f70..e29f84e3 100644
--- a/doc/html/boost_regex/configuration/algorithm.html
+++ b/doc/html/boost_regex/configuration/algorithm.html
@@ -4,7 +4,7 @@
Algorithm Selection
-
+
diff --git a/doc/html/boost_regex/configuration/compiler.html b/doc/html/boost_regex/configuration/compiler.html
index 8f29b1ec..6cd9f805 100644
--- a/doc/html/boost_regex/configuration/compiler.html
+++ b/doc/html/boost_regex/configuration/compiler.html
@@ -4,7 +4,7 @@
Compiler Setup
-
+
diff --git a/doc/html/boost_regex/configuration/linkage.html b/doc/html/boost_regex/configuration/linkage.html
index 3b95a7f6..a0d90b37 100644
--- a/doc/html/boost_regex/configuration/linkage.html
+++ b/doc/html/boost_regex/configuration/linkage.html
@@ -4,7 +4,7 @@
Linkage Options
-
+
diff --git a/doc/html/boost_regex/configuration/locale.html b/doc/html/boost_regex/configuration/locale.html
index 0caa33b4..4f13589c 100644
--- a/doc/html/boost_regex/configuration/locale.html
+++ b/doc/html/boost_regex/configuration/locale.html
@@ -4,7 +4,7 @@
Locale and traits class selection
-
+
diff --git a/doc/html/boost_regex/configuration/tuning.html b/doc/html/boost_regex/configuration/tuning.html
index 160439f2..6a8b98ca 100644
--- a/doc/html/boost_regex/configuration/tuning.html
+++ b/doc/html/boost_regex/configuration/tuning.html
@@ -4,7 +4,7 @@
Algorithm Tuning
-
+
diff --git a/doc/html/boost_regex/format.html b/doc/html/boost_regex/format.html
index 5dab932a..8070ea72 100644
--- a/doc/html/boost_regex/format.html
+++ b/doc/html/boost_regex/format.html
@@ -4,8 +4,8 @@
Search and Replace Format String Syntax
-
-
+
+
diff --git a/doc/html/boost_regex/format/boost_format_syntax.html b/doc/html/boost_regex/format/boost_format_syntax.html
index 627ecfe8..484612c7 100644
--- a/doc/html/boost_regex/format/boost_format_syntax.html
+++ b/doc/html/boost_regex/format/boost_format_syntax.html
@@ -4,7 +4,7 @@
Boost-Extended Format String Syntax
-
+
diff --git a/doc/html/boost_regex/format/perl_format.html b/doc/html/boost_regex/format/perl_format.html
index ba468b6c..26b870d8 100644
--- a/doc/html/boost_regex/format/perl_format.html
+++ b/doc/html/boost_regex/format/perl_format.html
@@ -4,7 +4,7 @@
Perl Format String Syntax
-
+
diff --git a/doc/html/boost_regex/format/sed_format.html b/doc/html/boost_regex/format/sed_format.html
index 9f6114f6..af9ed2bf 100644
--- a/doc/html/boost_regex/format/sed_format.html
+++ b/doc/html/boost_regex/format/sed_format.html
@@ -4,7 +4,7 @@
Sed Format String Syntax
-
+
diff --git a/doc/html/boost_regex/install.html b/doc/html/boost_regex/install.html
index 7604ade8..3a3dc159 100644
--- a/doc/html/boost_regex/install.html
+++ b/doc/html/boost_regex/install.html
@@ -4,8 +4,8 @@
Building and Installing the Library
-
-
+
+
diff --git a/doc/html/boost_regex/introduction_and_overview.html b/doc/html/boost_regex/introduction_and_overview.html
index 487de150..e95568c5 100644
--- a/doc/html/boost_regex/introduction_and_overview.html
+++ b/doc/html/boost_regex/introduction_and_overview.html
@@ -4,8 +4,8 @@
Introduction and Overview
-
-
+
+
diff --git a/doc/html/boost_regex/partial_matches.html b/doc/html/boost_regex/partial_matches.html
index abc796b6..6bc7c1da 100644
--- a/doc/html/boost_regex/partial_matches.html
+++ b/doc/html/boost_regex/partial_matches.html
@@ -4,8 +4,8 @@
Partial Matches
-
-
+
+
diff --git a/doc/html/boost_regex/ref.html b/doc/html/boost_regex/ref.html
index da68dc1e..f2f65319 100644
--- a/doc/html/boost_regex/ref.html
+++ b/doc/html/boost_regex/ref.html
@@ -4,8 +4,8 @@
Reference
-
-
+
+
diff --git a/doc/html/boost_regex/ref/bad_expression.html b/doc/html/boost_regex/ref/bad_expression.html
index 2272ffd6..f8e92c30 100644
--- a/doc/html/boost_regex/ref/bad_expression.html
+++ b/doc/html/boost_regex/ref/bad_expression.html
@@ -4,7 +4,7 @@
bad_expression
-
+
diff --git a/doc/html/boost_regex/ref/basic_regex.html b/doc/html/boost_regex/ref/basic_regex.html
index 1b53aab3..478dd094 100644
--- a/doc/html/boost_regex/ref/basic_regex.html
+++ b/doc/html/boost_regex/ref/basic_regex.html
@@ -4,7 +4,7 @@
basic_regex
-
+
diff --git a/doc/html/boost_regex/ref/concepts.html b/doc/html/boost_regex/ref/concepts.html
index 1d83c36d..91874b13 100644
--- a/doc/html/boost_regex/ref/concepts.html
+++ b/doc/html/boost_regex/ref/concepts.html
@@ -4,7 +4,7 @@
Concepts
-
+
diff --git a/doc/html/boost_regex/ref/concepts/charT_concept.html b/doc/html/boost_regex/ref/concepts/charT_concept.html
index 5ef51640..576d941a 100644
--- a/doc/html/boost_regex/ref/concepts/charT_concept.html
+++ b/doc/html/boost_regex/ref/concepts/charT_concept.html
@@ -4,7 +4,7 @@
charT Requirements
-
+
diff --git a/doc/html/boost_regex/ref/concepts/iterator_concepts.html b/doc/html/boost_regex/ref/concepts/iterator_concepts.html
index a415a49c..f87698e5 100644
--- a/doc/html/boost_regex/ref/concepts/iterator_concepts.html
+++ b/doc/html/boost_regex/ref/concepts/iterator_concepts.html
@@ -4,7 +4,7 @@
Iterator Requirements
-
+
diff --git a/doc/html/boost_regex/ref/concepts/traits_concept.html b/doc/html/boost_regex/ref/concepts/traits_concept.html
index cf7d1430..329afbb3 100644
--- a/doc/html/boost_regex/ref/concepts/traits_concept.html
+++ b/doc/html/boost_regex/ref/concepts/traits_concept.html
@@ -4,7 +4,7 @@
Traits Class Requirements
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces.html b/doc/html/boost_regex/ref/deprecated_interfaces.html
index b4aa5713..7b5a0a20 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces.html
@@ -4,7 +4,7 @@
Deprecated Interfaces
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html b/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
index 9160b26d..e036a7bc 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/old_regex.html
@@ -4,7 +4,7 @@
High Level Class RegEx (Deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
index df3c3492..7e889255 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html
@@ -4,7 +4,7 @@
regex_format (Deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
index 7aaf3186..2e87c0d5 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_grep.html
@@ -4,7 +4,7 @@
regex_grep (Deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
index faadd89b..0cdcaef7 100644
--- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
+++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_split.html
@@ -4,7 +4,7 @@
regex_split (deprecated)
-
+
diff --git a/doc/html/boost_regex/ref/error_type.html b/doc/html/boost_regex/ref/error_type.html
index 13a6c634..7e8ba401 100644
--- a/doc/html/boost_regex/ref/error_type.html
+++ b/doc/html/boost_regex/ref/error_type.html
@@ -4,7 +4,7 @@
error_type
-
+
diff --git a/doc/html/boost_regex/ref/internal_details.html b/doc/html/boost_regex/ref/internal_details.html
index de622082..76033f98 100644
--- a/doc/html/boost_regex/ref/internal_details.html
+++ b/doc/html/boost_regex/ref/internal_details.html
@@ -4,7 +4,7 @@
Internal Details
-
+
diff --git a/doc/html/boost_regex/ref/internal_details/uni_iter.html b/doc/html/boost_regex/ref/internal_details/uni_iter.html
index 855a4aa1..68f57e19 100644
--- a/doc/html/boost_regex/ref/internal_details/uni_iter.html
+++ b/doc/html/boost_regex/ref/internal_details/uni_iter.html
@@ -4,7 +4,7 @@
Unicode Iterators
-
+
diff --git a/doc/html/boost_regex/ref/match_flag_type.html b/doc/html/boost_regex/ref/match_flag_type.html
index 0756b723..103692b9 100644
--- a/doc/html/boost_regex/ref/match_flag_type.html
+++ b/doc/html/boost_regex/ref/match_flag_type.html
@@ -4,7 +4,7 @@
match_flag_type
-
+
diff --git a/doc/html/boost_regex/ref/match_results.html b/doc/html/boost_regex/ref/match_results.html
index a71bf3e4..51bb054e 100644
--- a/doc/html/boost_regex/ref/match_results.html
+++ b/doc/html/boost_regex/ref/match_results.html
@@ -4,7 +4,7 @@
match_results
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings.html b/doc/html/boost_regex/ref/non_std_strings.html
index d6a5da35..a19c0173 100644
--- a/doc/html/boost_regex/ref/non_std_strings.html
+++ b/doc/html/boost_regex/ref/non_std_strings.html
@@ -4,7 +4,7 @@
Interfacing With Non-Standard String Types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu.html b/doc/html/boost_regex/ref/non_std_strings/icu.html
index 019a56a3..2bb8f1e6 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu.html
@@ -4,7 +4,7 @@
Working With Unicode and ICU String Types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/intro.html b/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
index 9aeaedf9..34eb1ec0 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/intro.html
@@ -4,7 +4,7 @@
Introduction to using Regex with ICU
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
index 85c9b12f..a091f11f 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
@@ -4,7 +4,7 @@
Unicode Regular Expression Algorithms
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
index 6834c767..ae071c66 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html
@@ -4,7 +4,7 @@
Unicode Aware Regex Iterators
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
index 1e5b6f01..e9192363 100644
--- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
+++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_types.html
@@ -4,7 +4,7 @@
Unicode regular expression types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
index 64bba362..a63587fe 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings.html
@@ -4,7 +4,7 @@
Using Boost Regex With MFC Strings
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
index 6b64126d..2c6b5ef6 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html
@@ -4,7 +4,7 @@
Overloaded Algorithms For MFC String Types
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
index 9b9e0da9..25091195 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_intro.html
@@ -4,7 +4,7 @@
Introduction to Boost.Regex and MFC Strings
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
index b84f5941..05f4d904 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html
@@ -4,7 +4,7 @@
Iterating Over the Matches Within An MFC String
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
index 3cad6237..85688c5a 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_create.html
@@ -4,7 +4,7 @@
Regular Expression Creation From an MFC String
-
+
diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
index d31b1c7a..64de2955 100644
--- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
+++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_regex_types.html
@@ -4,7 +4,7 @@
Regex Types Used With MFC Strings
-
+
diff --git a/doc/html/boost_regex/ref/posix.html b/doc/html/boost_regex/ref/posix.html
index 0d3b3101..f3d835e6 100644
--- a/doc/html/boost_regex/ref/posix.html
+++ b/doc/html/boost_regex/ref/posix.html
@@ -4,7 +4,7 @@
POSIX Compatible C API's
-
+
diff --git a/doc/html/boost_regex/ref/regex_iterator.html b/doc/html/boost_regex/ref/regex_iterator.html
index f927a874..ff2395e2 100644
--- a/doc/html/boost_regex/ref/regex_iterator.html
+++ b/doc/html/boost_regex/ref/regex_iterator.html
@@ -4,7 +4,7 @@
regex_iterator
-
+
diff --git a/doc/html/boost_regex/ref/regex_match.html b/doc/html/boost_regex/ref/regex_match.html
index 4a74e9fa..ef438d2f 100644
--- a/doc/html/boost_regex/ref/regex_match.html
+++ b/doc/html/boost_regex/ref/regex_match.html
@@ -4,7 +4,7 @@
regex_match
-
+
diff --git a/doc/html/boost_regex/ref/regex_replace.html b/doc/html/boost_regex/ref/regex_replace.html
index e15d296d..de6d0097 100644
--- a/doc/html/boost_regex/ref/regex_replace.html
+++ b/doc/html/boost_regex/ref/regex_replace.html
@@ -4,7 +4,7 @@
regex_replace
-
+
diff --git a/doc/html/boost_regex/ref/regex_search.html b/doc/html/boost_regex/ref/regex_search.html
index 3cc8a33d..48da98bf 100644
--- a/doc/html/boost_regex/ref/regex_search.html
+++ b/doc/html/boost_regex/ref/regex_search.html
@@ -4,7 +4,7 @@
regex_search
-
+
diff --git a/doc/html/boost_regex/ref/regex_token_iterator.html b/doc/html/boost_regex/ref/regex_token_iterator.html
index 67de8b5b..fefb1ad7 100644
--- a/doc/html/boost_regex/ref/regex_token_iterator.html
+++ b/doc/html/boost_regex/ref/regex_token_iterator.html
@@ -4,7 +4,7 @@
regex_token_iterator
-
+
diff --git a/doc/html/boost_regex/ref/regex_traits.html b/doc/html/boost_regex/ref/regex_traits.html
index 86194d03..772e9176 100644
--- a/doc/html/boost_regex/ref/regex_traits.html
+++ b/doc/html/boost_regex/ref/regex_traits.html
@@ -4,7 +4,7 @@
regex_traits
-
+
diff --git a/doc/html/boost_regex/ref/sub_match.html b/doc/html/boost_regex/ref/sub_match.html
index e147e380..b56a709f 100644
--- a/doc/html/boost_regex/ref/sub_match.html
+++ b/doc/html/boost_regex/ref/sub_match.html
@@ -4,7 +4,7 @@
sub_match
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type.html b/doc/html/boost_regex/ref/syntax_option_type.html
index 647ed70c..54badea3 100644
--- a/doc/html/boost_regex/ref/syntax_option_type.html
+++ b/doc/html/boost_regex/ref/syntax_option_type.html
@@ -4,7 +4,7 @@
syntax_option_type
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
index ccd4484f..ce4afd66 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_basic.html
@@ -4,7 +4,7 @@
Options for POSIX Basic Regular Expressions
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
index 2cabf96a..66045f49 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_extended.html
@@ -4,7 +4,7 @@
Options for POSIX Extended Regular Expressions
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
index 8781292b..1dade2a7 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_literal.html
@@ -4,7 +4,7 @@
Options for Literal Strings
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
index af206640..6635c237 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_overview.html
@@ -4,7 +4,7 @@
Overview of syntax_option_type
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
index a8b64096..b6c31652 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_perl.html
@@ -4,7 +4,7 @@
Options for Perl Regular Expressions
-
+
diff --git a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
index 6b1ea120..78122320 100644
--- a/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
+++ b/doc/html/boost_regex/ref/syntax_option_type/syntax_option_type_synopsis.html
@@ -4,7 +4,7 @@
syntax_option_type Synopsis
-
+
diff --git a/doc/html/boost_regex/syntax.html b/doc/html/boost_regex/syntax.html
index 4eafebb2..25d7c3d1 100644
--- a/doc/html/boost_regex/syntax.html
+++ b/doc/html/boost_regex/syntax.html
@@ -4,8 +4,8 @@
Regular Expression Syntax
-
-
+
+
diff --git a/doc/html/boost_regex/syntax/basic_extended.html b/doc/html/boost_regex/syntax/basic_extended.html
index a4a13cc3..9197d9f1 100644
--- a/doc/html/boost_regex/syntax/basic_extended.html
+++ b/doc/html/boost_regex/syntax/basic_extended.html
@@ -4,7 +4,7 @@
POSIX Extended Regular Expression Syntax
-
+
diff --git a/doc/html/boost_regex/syntax/basic_syntax.html b/doc/html/boost_regex/syntax/basic_syntax.html
index a510f1a5..861b05ae 100644
--- a/doc/html/boost_regex/syntax/basic_syntax.html
+++ b/doc/html/boost_regex/syntax/basic_syntax.html
@@ -4,7 +4,7 @@
POSIX Basic Regular Expression Syntax
-
+
diff --git a/doc/html/boost_regex/syntax/character_classes.html b/doc/html/boost_regex/syntax/character_classes.html
index e43a4c5f..977bd6f4 100644
--- a/doc/html/boost_regex/syntax/character_classes.html
+++ b/doc/html/boost_regex/syntax/character_classes.html
@@ -4,7 +4,7 @@
Character Class Names
-
+
diff --git a/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html b/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
index 90119837..531ec1f3 100644
--- a/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
+++ b/doc/html/boost_regex/syntax/character_classes/optional_char_class_names.html
@@ -4,7 +4,7 @@
Character classes that are supported by Unicode Regular Expressions
-
+
diff --git a/doc/html/boost_regex/syntax/character_classes/std_char_classes.html b/doc/html/boost_regex/syntax/character_classes/std_char_classes.html
index 923b3add..e3412b29 100644
--- a/doc/html/boost_regex/syntax/character_classes/std_char_classes.html
+++ b/doc/html/boost_regex/syntax/character_classes/std_char_classes.html
@@ -4,7 +4,7 @@
Character Classes that are Always Supported
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names.html b/doc/html/boost_regex/syntax/collating_names.html
index c921127e..96d6d259 100644
--- a/doc/html/boost_regex/syntax/collating_names.html
+++ b/doc/html/boost_regex/syntax/collating_names.html
@@ -4,7 +4,7 @@
Collating Names
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names/digraphs.html b/doc/html/boost_regex/syntax/collating_names/digraphs.html
index fa3bac4d..611bf93e 100644
--- a/doc/html/boost_regex/syntax/collating_names/digraphs.html
+++ b/doc/html/boost_regex/syntax/collating_names/digraphs.html
@@ -4,7 +4,7 @@
Digraphs
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names/named_unicode.html b/doc/html/boost_regex/syntax/collating_names/named_unicode.html
index c61cb73f..8088ff7b 100644
--- a/doc/html/boost_regex/syntax/collating_names/named_unicode.html
+++ b/doc/html/boost_regex/syntax/collating_names/named_unicode.html
@@ -4,7 +4,7 @@
Named Unicode Characters
-
+
diff --git a/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html b/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
index 21ba2e5d..cc55942d 100644
--- a/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
+++ b/doc/html/boost_regex/syntax/collating_names/posix_symbolic_names.html
@@ -4,7 +4,7 @@
POSIX Symbolic Names
-
+
diff --git a/doc/html/boost_regex/syntax/leftmost_longest_rule.html b/doc/html/boost_regex/syntax/leftmost_longest_rule.html
index 7a86b576..1ae15359 100644
--- a/doc/html/boost_regex/syntax/leftmost_longest_rule.html
+++ b/doc/html/boost_regex/syntax/leftmost_longest_rule.html
@@ -4,7 +4,7 @@
The Leftmost Longest Rule
-
+
diff --git a/doc/html/boost_regex/syntax/perl_syntax.html b/doc/html/boost_regex/syntax/perl_syntax.html
index cbde9c41..281ac7fb 100644
--- a/doc/html/boost_regex/syntax/perl_syntax.html
+++ b/doc/html/boost_regex/syntax/perl_syntax.html
@@ -4,7 +4,7 @@
Perl Regular Expression Syntax
-
+
diff --git a/doc/html/boost_regex/unicode.html b/doc/html/boost_regex/unicode.html
index a74d9c8d..9671afdb 100644
--- a/doc/html/boost_regex/unicode.html
+++ b/doc/html/boost_regex/unicode.html
@@ -4,8 +4,8 @@
Unicode and Boost.Regex
-
-
+
+
diff --git a/doc/html/index.html b/doc/html/index.html
index b8d539dd..04819f75 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -1,10 +1,10 @@
-Boost.Regex 5.0.1
+Boost.Regex 5.1.1
-
+
@@ -22,7 +22,7 @@
-Last revised: October 15, 2015 at 17:25:24 GMT |
+Last revised: January 10, 2016 at 18:43:41 GMT |
|
diff --git a/doc/regex.qbk b/doc/regex.qbk
index 838fbfb4..c8ef0088 100644
--- a/doc/regex.qbk
+++ b/doc/regex.qbk
@@ -8,7 +8,7 @@
[@http://www.boost.org/LICENSE_1_0.txt])
]
[authors [Maddock, John]]
- [version 5.0.1]
+ [version 5.1.1]
[/last-revision $Date$]
]