git: e8fba4b05398 - main - devel/boost*: update to 1.85.0 release (+)
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 03 Oct 2024 10:27:19 UTC
The branch main has been updated by fluffy:
URL: https://cgit.FreeBSD.org/ports/commit/?id=e8fba4b053986074dff7a167fdc4ff83d480a3b6
commit e8fba4b053986074dff7a167fdc4ff83d480a3b6
Author: Dima Panov <fluffy@FreeBSD.org>
AuthorDate: 2024-10-02 22:16:13 +0000
Commit: Dima Panov <fluffy@FreeBSD.org>
CommitDate: 2024-10-03 10:24:50 +0000
devel/boost*: update to 1.85.0 release (+)
With hat: office
Changelog: https://www.boost.org/users/history/version_1_85_0.html
Sponsored by: Future Crew, LLC
---
devel/boost-all/common.mk | 2 +-
devel/boost-all/distinfo | 6 +-
.../files/patch-boost-1.85.0-bcp-filesystem | 188 ++++++++++
.../files/patch-boost-1.85.0-container-aliasing | 408 +++++++++++++++++++++
.../files/patch-boost-1.85.0-python-numpy-2 | 26 ++
...atch-boost_math_cstdfloat_cstdfloat__limits.hpp | 11 -
...atch-boost_signals2_detail_signal__template.hpp | 126 -------
...bs_context_src_asm_jump__i386__sysv__elf__gas.S | 19 -
...bs_context_src_asm_make__i386__sysv__elf__gas.S | 19 -
devel/boost-libs/pkg-plist | 301 ++++++++++-----
devel/boost_build/Makefile | 4 +-
devel/boost_build/distinfo | 6 +-
devel/boost_build/pkg-plist | 7 -
13 files changed, 834 insertions(+), 289 deletions(-)
diff --git a/devel/boost-all/common.mk b/devel/boost-all/common.mk
index 1b73846d5816..6aa5feb3c671 100644
--- a/devel/boost-all/common.mk
+++ b/devel/boost-all/common.mk
@@ -15,7 +15,7 @@ MASTER_SITES= https://boostorg.jfrog.io/artifactory/main/release/${PORTVERSION}/
USES+= tar:bzip2
BOOST_MAJOR_VER=1
-BOOST_MINOR_VER=84
+BOOST_MINOR_VER=85
BOOST_PATCH_VER=0
BOOST_RC_VER=
BOOST_SHARED_LIB_VER=${BOOST_MAJOR_VER}.${BOOST_MINOR_VER}.${BOOST_PATCH_VER}
diff --git a/devel/boost-all/distinfo b/devel/boost-all/distinfo
index 4a0c5b6b1706..975009873ea8 100644
--- a/devel/boost-all/distinfo
+++ b/devel/boost-all/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1702987429
-SHA256 (boost_1_84_0.tar.bz2) = cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454
-SIZE (boost_1_84_0.tar.bz2) = 123110547
+TIMESTAMP = 1717930966
+SHA256 (boost_1_85_0.tar.bz2) = 7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617
+SIZE (boost_1_85_0.tar.bz2) = 124015250
diff --git a/devel/boost-libs/files/patch-boost-1.85.0-bcp-filesystem b/devel/boost-libs/files/patch-boost-1.85.0-bcp-filesystem
new file mode 100644
index 000000000000..0d6e5d566c49
--- /dev/null
+++ b/devel/boost-libs/files/patch-boost-1.85.0-bcp-filesystem
@@ -0,0 +1,188 @@
+https://bugs.gentoo.org/932240
+https://github.com/boostorg/bcp/commit/cd21e9b4a749a77c24facf2da44f01e032c40842
+
+From cd21e9b4a749a77c24facf2da44f01e032c40842 Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <andrey.semashev@gmail.com>
+Date: Sun, 24 Mar 2024 14:49:18 +0300
+Subject: [PATCH] Remove usage of deprecated and removed Boost.Filesystem APIs.
+
+---
+ add_dependent_lib.cpp | 5 +++--
+ add_path.cpp | 30 +++++++++++++++---------------
+ bcp_imp.hpp | 1 +
+ copy_path.cpp | 8 ++++----
+ file_types.cpp | 2 +-
+ 5 files changed, 24 insertions(+), 22 deletions(-)
+
+diff --git tools/bcp/add_dependent_lib.cpp tools/bcp/add_dependent_lib.cpp
+index 4852914..521b70d 100644
+--- tools/bcp/add_dependent_lib.cpp
++++ tools/bcp/add_dependent_lib.cpp
+@@ -15,6 +15,7 @@
+ #include "bcp_imp.hpp"
+ #include "fileview.hpp"
+ #include <boost/regex.hpp>
++#include <boost/filesystem/directory.hpp>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/exception.hpp>
+ #include <iostream>
+@@ -43,12 +44,12 @@ static void init_library_scanner(const fs::path& p, bool cvs_mode, const std::st
+ //
+ // Don't add files created by build system:
+ //
+- if((p.leaf() == "bin") || (p.leaf() == "bin-stage"))
++ if((p.filename() == "bin") || (p.filename() == "bin-stage"))
+ return;
+ //
+ // Don't add version control directories:
+ //
+- if((p.leaf() == "CVS") || (p.leaf() == ".svn"))
++ if((p.filename() == "CVS") || (p.filename() == ".svn"))
+ return;
+ //
+ // don't add directories not under version control:
+diff --git tools/bcp/add_path.cpp tools/bcp/add_path.cpp
+index 8a1fee3..747bb8c 100644
+--- tools/bcp/add_path.cpp
++++ tools/bcp/add_path.cpp
+@@ -15,6 +15,7 @@
+ #include "bcp_imp.hpp"
+ #include "fileview.hpp"
+ #include <boost/regex.hpp>
++#include <boost/filesystem/directory.hpp>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/filesystem/exception.hpp>
+ #include <iostream>
+@@ -24,8 +25,7 @@ void bcp_implementation::add_path(const fs::path& p)
+ {
+ if (m_excluded.find(p) != m_excluded.end())
+ return;
+- fs::path normalized_path = p;
+- normalized_path.normalize();
++ fs::path normalized_path = p.lexically_normal();
+ if(fs::exists(m_boost_path / normalized_path))
+ {
+ if(fs::is_directory(m_boost_path / normalized_path))
+@@ -45,12 +45,12 @@ void bcp_implementation::add_directory(const fs::path& p)
+ //
+ // Don't add files created by build system:
+ //
+- if((p.leaf() == "bin") || (p.leaf() == "bin-stage"))
++ if((p.filename() == "bin") || (p.filename() == "bin-stage"))
+ return;
+ //
+ // Don't add version control directories:
+ //
+- if((p.leaf() == "CVS") || (p.leaf() == ".svn"))
++ if((p.filename() == "CVS") || (p.filename() == ".svn"))
+ return;
+ //
+ // don't add directories not under version control:
+@@ -180,7 +180,7 @@ void bcp_implementation::add_file(const fs::path& p)
+ {
+ // only concatonate if it's a relative path
+ // rather than a URL:
+- fs::path dep(p.branch_path() / s);
++ fs::path dep(p.parent_path() / s);
+ if(!m_dependencies.count(dep))
+ {
+ m_dependencies[dep] = p; // set up dependency tree
+@@ -355,13 +355,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile)
+ continue;
+ }
+ include_file = i->str();
+- fs::path test_file(m_boost_path / p.branch_path() / include_file);
+- if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost"))
++ fs::path test_file(m_boost_path / p.parent_path() / include_file);
++ if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost"))
+ {
+- if(!m_dependencies.count(p.branch_path() / include_file))
++ if(!m_dependencies.count(p.parent_path() / include_file))
+ {
+- m_dependencies[p.branch_path() / include_file] = p;
+- add_pending_path(p.branch_path() / include_file);
++ m_dependencies[p.parent_path() / include_file] = p;
++ add_pending_path(p.parent_path() / include_file);
+ }
+ }
+ else if(fs::exists(m_boost_path / include_file))
+@@ -405,13 +405,13 @@ void bcp_implementation::add_file_dependencies(const fs::path& p, bool scanfile)
+ ++i;
+ continue;
+ }
+- fs::path test_file(m_boost_path / p.branch_path() / include_file);
+- if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.branch_path().string() != "boost"))
++ fs::path test_file(m_boost_path / p.parent_path() / include_file);
++ if(fs::exists(test_file) && !fs::is_directory(test_file) && (p.parent_path().string() != "boost"))
+ {
+- if(!m_dependencies.count(p.branch_path() / include_file))
++ if(!m_dependencies.count(p.parent_path() / include_file))
+ {
+- m_dependencies[p.branch_path() / include_file] = p;
+- add_pending_path(p.branch_path() / include_file);
++ m_dependencies[p.parent_path() / include_file] = p;
++ add_pending_path(p.parent_path() / include_file);
+ }
+ }
+ else if(fs::exists(m_boost_path / include_file))
+diff --git tools/bcp/bcp_imp.hpp tools/bcp/bcp_imp.hpp
+index e515581..51c85ba 100644
+--- tools/bcp/bcp_imp.hpp
++++ tools/bcp/bcp_imp.hpp
+@@ -14,6 +14,7 @@
+ #include <set>
+ #include <map>
+ #include <queue>
++#include <string>
+ #include <boost/filesystem/path.hpp>
+
+ namespace fs = boost::filesystem;
+diff --git tools/bcp/copy_path.cpp tools/bcp/copy_path.cpp
+index 4143c79..6b7a370 100644
+--- tools/bcp/copy_path.cpp
++++ tools/bcp/copy_path.cpp
+@@ -49,18 +49,18 @@ void bcp_implementation::copy_path(const fs::path& p)
+ if(fs::exists(m_dest_path / p))
+ {
+ std::cout << "Copying (and overwriting) file: " << p.string() << "\n";
+- fs::remove(m_dest_path / p);
++ fs::remove(m_dest_path / p);
+ }
+ else
+ std::cout << "Copying file: " << p.string() << "\n";
+ //
+ // create the path to the new file if it doesn't already exist:
+ //
+- create_path(p.branch_path());
++ create_path(p.parent_path());
+ //
+ // do text based copy if requested:
+ //
+- if((p.leaf() == "Jamroot") && m_namespace_name.size())
++ if((p.filename() == "Jamroot") && m_namespace_name.size())
+ {
+ static std::vector<char> v1, v2;
+ v1.clear();
+@@ -240,7 +240,7 @@ void bcp_implementation::create_path(const fs::path& p)
+ if(!fs::exists(m_dest_path / p))
+ {
+ // recurse then create the path:
+- create_path(p.branch_path());
++ create_path(p.parent_path());
+ fs::create_directory(m_dest_path / p);
+ }
+ }
+diff --git tools/bcp/file_types.cpp tools/bcp/file_types.cpp
+index 297d304..69f6027 100644
+--- tools/bcp/file_types.cpp
++++ tools/bcp/file_types.cpp
+@@ -52,7 +52,7 @@ bool bcp_implementation::is_binary_file(const fs::path& p)
+ "|"
+ "(Jamfile|makefile|configure)",
+ boost::regex::perl | boost::regex::icase);
+- return !boost::regex_match(p.leaf().generic_string(), e);
++ return !boost::regex_match(p.filename().generic_string(), e);
+
+ }
+
+
diff --git a/devel/boost-libs/files/patch-boost-1.85.0-container-aliasing b/devel/boost-libs/files/patch-boost-1.85.0-container-aliasing
new file mode 100644
index 000000000000..ce50698aeb06
--- /dev/null
+++ b/devel/boost-libs/files/patch-boost-1.85.0-container-aliasing
@@ -0,0 +1,408 @@
+https://bugs.gentoo.org/933289 (and https://bugs.gentoo.org/932780, https://bugs.gentoo.org/931587)
+https://github.com/freeorion/freeorion/issues/4949
+https://github.com/boostorg/container/issues/252
+https://github.com/boostorg/container/issues/281
+https://github.com/boostorg/container/commit/20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9
+
+From 20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= <igaztanaga@gmail.com>
+Date: Sun, 28 Apr 2024 23:29:59 +0200
+Subject: [PATCH] Remove UB in flat_map implementation when the implementation
+ has a movable std::pair
+
+--- boost/container/allocator_traits.hpp
++++ boost/container/allocator_traits.hpp
+@@ -32,6 +32,8 @@
+ #include <boost/container/detail/mpl.hpp>
+ #include <boost/container/detail/type_traits.hpp> //is_empty
+ #include <boost/container/detail/placement_new.hpp>
++#include <boost/container/detail/is_pair.hpp>
++#include <boost/container/detail/addressof.hpp>
+ #ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP
+ #include <boost/container/detail/std_fwd.hpp>
+ #endif
+@@ -81,6 +83,144 @@
+
+ namespace boost {
+ namespace container {
++namespace dtl {
++
++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
++
++template<class T, class ...Args>
++BOOST_CONTAINER_FORCEINLINE void construct_type(T *p, BOOST_FWD_REF(Args) ...args)
++{
++ ::new((void*)p, boost_container_new_t()) T(::boost::forward<Args>(args)...);
++}
++
++template < class Pair, class KeyType, class ... Args>
++typename dtl::enable_if< dtl::is_pair<Pair>, void >::type
++construct_type
++ (Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k, BOOST_FWD_REF(Args) ...args)
++{
++ construct_type(dtl::addressof(p->first), ::boost::forward<KeyType>(k));
++ BOOST_CONTAINER_TRY{
++ construct_type(dtl::addressof(p->second), ::boost::forward<Args>(args)...);
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename Pair::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++#else
++
++#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ(N) \
++template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
++BOOST_CONTAINER_FORCEINLINE \
++ typename dtl::disable_if_c<dtl::is_pair<T>::value, void >::type \
++construct_type(T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
++{\
++ ::new((void*)p, boost_container_new_t()) T( BOOST_MOVE_FWD##N );\
++}\
++//
++BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ)
++#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ
++
++#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE(N) \
++template < class Pair, class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
++typename dtl::enable_if< dtl::is_pair<Pair>, void >::type construct_type\
++ (Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
++{\
++ construct_type(dtl::addressof(p->first), ::boost::forward<KeyType>(k));\
++ BOOST_CONTAINER_TRY{\
++ construct_type(dtl::addressof(p->second) BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
++ }\
++ BOOST_CONTAINER_CATCH(...) {\
++ typedef typename Pair::first_type first_type;\
++ dtl::addressof(p->first)->~first_type();\
++ BOOST_CONTAINER_RETHROW\
++ }\
++ BOOST_CONTAINER_CATCH_END\
++}\
++//
++BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE)
++#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE
++
++#endif
++
++template<class T>
++inline
++typename dtl::enable_if<dtl::is_pair<T>, void >::type
++construct_type(T* p)
++{
++ dtl::construct_type(dtl::addressof(p->first));
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second));
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++
++template<class T, class U>
++inline
++typename dtl::enable_if_c
++ < dtl::is_pair<T>::value
++ , void >::type
++construct_type(T* p, U &u)
++{
++ dtl::construct_type(dtl::addressof(p->first), u.first);
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second), u.second);
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++template<class T, class U>
++inline
++typename dtl::enable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value &&
++ !boost::move_detail::is_reference<U>::value //This is needed for MSVC10 and ambiguous overloads
++ , void >::type
++construct_type(T* p, BOOST_RV_REF(U) u)
++{
++ dtl::construct_type(dtl::addressof(p->first), ::boost::move(u.first));
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second), ::boost::move(u.second));
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++template<class T, class U, class V>
++inline
++typename dtl::enable_if<dtl::is_pair<T>, void >::type
++construct_type(T* p, BOOST_FWD_REF(U) x, BOOST_FWD_REF(V) y)
++{
++ dtl::construct_type(dtl::addressof(p->first), ::boost::forward<U>(x));
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second), ::boost::forward<V>(y));
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++} //namespace dtl
+
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
+
+@@ -419,7 +559,7 @@ struct allocator_traits
+
+ template<class T, class ...Args>
+ inline static void priv_construct(dtl::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args)
+- { ::new((void*)p, boost_container_new_t()) T(::boost::forward<Args>(args)...); }
++ { dtl::construct_type(p, ::boost::forward<Args>(args)...); }
+ #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+ public:
+
+@@ -450,7 +590,7 @@ struct allocator_traits
+ \
+ template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
+ inline static void priv_construct(dtl::false_type, Allocator &, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
+- { ::new((void*)p, boost_container_new_t()) T(BOOST_MOVE_FWD##N); }\
++ { dtl::construct_type(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
+ //
+ BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL)
+ #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL
+--- boost/container/detail/construct_in_place.hpp
++++ boost/container/detail/construct_in_place.hpp
+@@ -24,6 +24,7 @@
+ #include <boost/container/allocator_traits.hpp>
+ #include <boost/container/detail/iterators.hpp>
+ #include <boost/container/detail/value_init.hpp>
++#include <boost/container/detail/is_pair.hpp>
+
+ namespace boost {
+ namespace container {
+@@ -62,9 +63,42 @@ BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, empla
+
+ //Assignment
+
++template<class T, class U>
++BOOST_CONTAINER_FORCEINLINE
++ typename dtl::disable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value
++ && dtl::is_pair<typename dtl::remove_reference<U>::type>::value
++ , void>::type
++assign_in_place_ref(T &t, BOOST_FWD_REF(U) u)
++{ t = ::boost::forward<U>(u); }
++
++template<class T, class U>
++BOOST_CONTAINER_FORCEINLINE
++ typename dtl::enable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value
++ && dtl::is_pair<typename dtl::remove_reference<U>::type>::value
++ , void>::type
++assign_in_place_ref(T &t, const U &u)
++{
++ assign_in_place_ref(t.first, u.first);
++ assign_in_place_ref(t.second, u.second);
++}
++
++template<class T, class U>
++BOOST_CONTAINER_FORCEINLINE
++ typename dtl::enable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value
++ && dtl::is_pair<typename dtl::remove_reference<U>::type>::value
++ , void>::type
++assign_in_place_ref(T &t, BOOST_RV_REF(U) u)
++{
++ assign_in_place_ref(t.first, ::boost::move(u.first));
++ assign_in_place_ref(t.second, ::boost::move(u.second));
++}
++
+ template<class DstIt, class InpIt>
+ BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, InpIt source)
+-{ *dest = *source; }
++{ assign_in_place_ref(*dest, *source); }
+
+ template<class DstIt, class U>
+ BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, value_init_construct_iterator<U>)
+--- boost/container/flat_map.hpp
++++ boost/container/flat_map.hpp
+@@ -48,6 +48,11 @@
+ #include <initializer_list>
+ #endif
+
++#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
++#define BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
++#endif
++
++
+ namespace boost {
+ namespace container {
+
+@@ -58,21 +63,37 @@ class flat_multimap;
+
+ namespace dtl{
+
++#if defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
+ template<class D, class S>
+ BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
+-{ return *move_detail::force_ptr<D*>(&s); }
++{ return s; }
+
+ template<class D, class S>
+ BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s)
+-{ return *move_detail::force_ptr<const D*>(&s); }
++{ return s; }
++
++template<class D>
++BOOST_CONTAINER_FORCEINLINE static D force_copy(D s)
++{ return s; }
++
++#else //!BOOST_CONTAINER_DOXYGEN_INVOKED
++
++template<class D, class S>
++BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
++{ return *move_detail::launder_cast<D*>(&s); }
++
++template<class D, class S>
++BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s)
++{ return *move_detail::launder_cast<const D*>(&s); }
+
+ template<class D, class S>
+ BOOST_CONTAINER_FORCEINLINE static D force_copy(const S &s)
+ {
+- const D *const vp = move_detail::force_ptr<const D *>(&s);
++ const D *const vp = move_detail::launder_cast<const D *>(&s);
+ D ret_val(*vp);
+ return ret_val;
+ }
++#endif //BOOST_CONTAINER_DOXYGEN_INVOKED
+
+ } //namespace dtl{
+
+@@ -118,18 +139,27 @@ class flat_map
+ private:
+ BOOST_COPYABLE_AND_MOVABLE(flat_map)
+ //This is the tree that we should store if pair was movable
++ typedef std::pair<Key, T> std_pair_t;
+ typedef dtl::flat_tree<
+- std::pair<Key, T>,
++ std_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+ AllocatorOrContainer> tree_t;
+
+ //This is the real tree stored here. It's based on a movable pair
++ typedef dtl::pair<Key, T> dtl_pair_t;
++
++ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
++ typedef std_pair_t impl_pair_t;
++ #else
++ typedef dtl_pair_t impl_pair_t;
++ #endif
++
+ typedef dtl::flat_tree<
+- dtl::pair<Key, T>,
++ impl_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
++ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
+ > impl_tree_t;
+ impl_tree_t m_flat_tree; // flat tree representing flat_map
+
+@@ -851,7 +881,7 @@ class flat_map
+ //! @copydoc ::boost::container::flat_set::nth(size_type) const
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
+- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
++ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
+
+ //! @copydoc ::boost::container::flat_set::index_of(iterator)
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+@@ -1099,7 +1129,7 @@ class flat_map
+ template <class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( std::pair<iterator BOOST_MOVE_I bool>
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I std::pair<iterator BOOST_MOVE_I bool> >::type)
+ insert(BOOST_FWD_REF(Pair) x)
+ {
+@@ -1153,7 +1183,7 @@ class flat_map
+ template <class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( iterator
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I iterator>::type)
+ insert(const_iterator p, BOOST_FWD_REF(Pair) x)
+ {
+@@ -1777,17 +1807,24 @@ class flat_multimap
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
+ private:
+ BOOST_COPYABLE_AND_MOVABLE(flat_multimap)
++ typedef std::pair<Key, T> std_pair_t;
+ typedef dtl::flat_tree<
+- std::pair<Key, T>,
++ std_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+ AllocatorOrContainer> tree_t;
+ //This is the real tree stored here. It's based on a movable pair
++ typedef dtl::pair<Key, T> dtl_pair_t;
++ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
++ typedef std_pair_t impl_pair_t;
++ #else
++ typedef dtl_pair_t impl_pair_t;
++ #endif
+ typedef dtl::flat_tree<
+- dtl::pair<Key, T>,
++ impl_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
++ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
+ > impl_tree_t;
+ impl_tree_t m_flat_tree; // flat tree representing flat_map
+
+@@ -2388,7 +2425,7 @@ class flat_multimap
+ //! @copydoc ::boost::container::flat_set::nth(size_type) const
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
+- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
++ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
+
+ //! @copydoc ::boost::container::flat_set::index_of(iterator)
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+@@ -2477,7 +2514,7 @@ class flat_multimap
+ template<class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( iterator
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I iterator >::type)
+ insert(BOOST_FWD_REF(Pair) x)
+ { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Pair>(x))); }
+@@ -2514,7 +2551,7 @@ class flat_multimap
+ template<class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( iterator
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I iterator>::type)
+ insert(const_iterator p, BOOST_FWD_REF(Pair) x)
+ {
diff --git a/devel/boost-libs/files/patch-boost-1.85.0-python-numpy-2 b/devel/boost-libs/files/patch-boost-1.85.0-python-numpy-2
new file mode 100644
index 000000000000..e74dfbbb1abd
--- /dev/null
+++ b/devel/boost-libs/files/patch-boost-1.85.0-python-numpy-2
@@ -0,0 +1,26 @@
+https://bugs.gentoo.org/932459
+https://github.com/boostorg/python/issues/431
+https://github.com/boostorg/python/pull/432
+
+From 33ac06ca59a68266d3d26edf08205d31ddab4a6c Mon Sep 17 00:00:00 2001
+From: Alexis DUBURCQ <alexis.duburcq@gmail.com>
+Date: Fri, 15 Mar 2024 14:10:16 +0100
+Subject: [PATCH] Support numpy 2.0.0b1
+
+--- libs/python/src/numpy/dtype.cpp
++++ libs/python/src/numpy/dtype.cpp
+@@ -98,7 +98,13 @@ python::detail::new_reference dtype::convert(object const & arg, bool align)
+ return python::detail::new_reference(reinterpret_cast<PyObject*>(obj));
+ }
+
+-int dtype::get_itemsize() const { return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;}
++int dtype::get_itemsize() const {
++#if NPY_ABI_VERSION < 0x02000000
++ return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;
++#else
++ return PyDataType_ELSIZE(reinterpret_cast<PyArray_Descr*>(ptr()));
++#endif
++}
+
+ bool equivalent(dtype const & a, dtype const & b) {
+ // On Windows x64, the behaviour described on
diff --git a/devel/boost-libs/files/patch-boost_math_cstdfloat_cstdfloat__limits.hpp b/devel/boost-libs/files/patch-boost_math_cstdfloat_cstdfloat__limits.hpp
deleted file mode 100644
index 870de6c7e306..000000000000
--- a/devel/boost-libs/files/patch-boost_math_cstdfloat_cstdfloat__limits.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- boost/math/cstdfloat/cstdfloat_limits.hpp.orig 2023-12-06 21:03:04 UTC
-+++ boost/math/cstdfloat/cstdfloat_limits.hpp
-@@ -24,7 +24,7 @@
- #pragma GCC system_header
- #endif
-
-- #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) && (!defined(__GNUC__) || (defined(__GNUC__) && __GNUC__ < 14))
-+ #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) && (!defined(_GLIBCXX_RELEASE) || (defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE < 14))
-
- #include <limits>
- #include <boost/math/tools/nothrow.hpp>
diff --git a/devel/boost-libs/files/patch-boost_signals2_detail_signal__template.hpp b/devel/boost-libs/files/patch-boost_signals2_detail_signal__template.hpp
deleted file mode 100644
index cf89583c13da..000000000000
--- a/devel/boost-libs/files/patch-boost_signals2_detail_signal__template.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
---- boost/signals2/detail/signal_template.hpp.orig 2023-12-06 21:03:06 UTC
-+++ boost/signals2/detail/signal_template.hpp
-@@ -103,9 +103,9 @@ namespace boost
- BOOST_SIGNALS2_FORWARDED_ARGS(BOOST_SIGNALS2_NUM_ARGS));
- }
- template<typename T>
-- bool operator==(const T &other) const
-+ bool contains(const T &other) const
- {
-- return _fun == other;
-+ return _fun.contains(other);
- }
- private:
- BOOST_SIGNALS2_BOUND_EXTENDED_SLOT_FUNCTION_N(BOOST_SIGNALS2_NUM_ARGS)()
-@@ -116,6 +116,8 @@ namespace boost
- };
-
- template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
-+ class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
-+ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
- class BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
-
- template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_SPECIALIZATION_DECL(BOOST_SIGNALS2_NUM_ARGS)>
-@@ -150,6 +152,8 @@ namespace boost
- typedef GroupCompare group_compare_type;
- typedef typename detail::slot_call_iterator_t<slot_invoker,
- typename connection_list_type::iterator, connection_body<group_key_type, slot_type, Mutex> > slot_call_iterator;
-+ typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
-+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> weak_signal_type;
-
- BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(const combiner_type &combiner_arg,
- const group_compare_type &group_compare):
-@@ -219,7 +223,7 @@ namespace boost
- void disconnect(const T &slot)
- {
- typedef mpl::bool_<(is_convertible<T, group_type>::value)> is_group;
-- do_disconnect(slot, is_group());
-+ do_disconnect(unwrap_ref(slot), is_group());
- }
- // emit signal
- result_type operator ()(BOOST_SIGNALS2_SIGNATURE_FULL_ARGS(BOOST_SIGNALS2_NUM_ARGS))
-@@ -531,13 +535,20 @@ namespace boost
- {
- (*it)->nolock_disconnect(lock);
- }else
-- {
-- // check for wrapped extended slot
-+ { // check for wrapped extended slot
- bound_extended_slot_function_type *fp;
- fp = (*it)->slot().slot_function().template target<bound_extended_slot_function_type>();
-- if(fp && function_equal(*fp, slot))
-+ if(fp && fp->contains(slot))
- {
- (*it)->nolock_disconnect(lock);
-+ }else
-+ { // check for wrapped signal
-+ weak_signal_type *fp;
-+ fp = (*it)->slot().slot_function().template target<weak_signal_type>();
-+ if(fp && fp->contains(slot))
-+ {
-+ (*it)->nolock_disconnect(lock);
-+ }
- }
- }
- }
-@@ -588,8 +599,6 @@ namespace boost
- const boost::shared_ptr<mutex_type> _mutex;
- };
-
-- template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
-- class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
- }
-
- template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DEFAULTED_DECL(BOOST_SIGNALS2_NUM_ARGS)>
-@@ -603,8 +612,7 @@ namespace boost
- typedef detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
- <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> impl_class;
- public:
-- typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
-- <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> weak_signal_type;
-+ typedef typename impl_class::weak_signal_type weak_signal_type;
- friend class detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
- <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION>;
-
-@@ -746,12 +754,24 @@ namespace boost
- using std::swap;
- swap(_pimpl, other._pimpl);
- }
-+ bool operator==(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) const
-+ {
-+ return _pimpl.get() == other._pimpl.get();
-+ }
- protected:
- virtual shared_ptr<void> lock_pimpl() const
- {
- return _pimpl;
- }
- private:
-+ // explicit private copy constructor to avoid compiler trying to do implicit conversions to signal
-+ explicit BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(
-+ const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) BOOST_NOEXCEPT
-+ {
-+ // noncopyable
-+ BOOST_ASSERT(false);
-+ }
-+
- shared_ptr<impl_class>
- _pimpl;
- };
-@@ -801,6 +821,16 @@ namespace boost
- <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> >
- shared_pimpl(_weak_pimpl.lock());
- return (*shared_pimpl)(BOOST_SIGNALS2_SIGNATURE_ARG_NAMES(BOOST_SIGNALS2_NUM_ARGS));
-+ }
-+ bool contains(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
-+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> &signal) const
-+ {
-+ return _weak_pimpl.lock().get() == signal._pimpl.get();
-+ }
-+ template <typename T>
-+ bool contains(const T&) const
-+ {
-+ return false;
- }
- private:
- boost::weak_ptr<detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
diff --git a/devel/boost-libs/files/patch-libs_context_src_asm_jump__i386__sysv__elf__gas.S b/devel/boost-libs/files/patch-libs_context_src_asm_jump__i386__sysv__elf__gas.S
deleted file mode 100644
index 56d5cae55af8..000000000000
--- a/devel/boost-libs/files/patch-libs_context_src_asm_jump__i386__sysv__elf__gas.S
+++ /dev/null
@@ -1,19 +0,0 @@
---- libs/context/src/asm/jump_i386_sysv_elf_gas.S.orig 2023-12-06 21:03:02 UTC
-+++ libs/context/src/asm/jump_i386_sysv_elf_gas.S
-@@ -24,6 +24,10 @@
- * *
- ****************************************************************************************/
-
-+#ifdef __x86_64__
-+#include "jump_x86_64_sysv_elf_gas.S"
-+#else
-+
- .file "jump_i386_sysv_elf_gas.S"
- .text
- .globl jump_fcontext
-@@ -91,3 +95,5 @@ jump_fcontext:
-
- /* Mark that we don't need executable stack. */
- .section .note.GNU-stack,"",%progbits
-+
-+#endif
diff --git a/devel/boost-libs/files/patch-libs_context_src_asm_make__i386__sysv__elf__gas.S b/devel/boost-libs/files/patch-libs_context_src_asm_make__i386__sysv__elf__gas.S
deleted file mode 100644
index 548fd0cfba1f..000000000000
--- a/devel/boost-libs/files/patch-libs_context_src_asm_make__i386__sysv__elf__gas.S
+++ /dev/null
@@ -1,19 +0,0 @@
---- libs/context/src/asm/make_i386_sysv_elf_gas.S.orig 2023-12-06 21:03:02 UTC
-+++ libs/context/src/asm/make_i386_sysv_elf_gas.S
-@@ -24,6 +24,10 @@
- * *
- ****************************************************************************************/
-
-+#ifdef __x86_64__
-+#include "make_x86_64_sysv_elf_gas.S"
-+#else
-+
- .file "make_i386_sysv_elf_gas.S"
- .text
- .globl make_fcontext
-@@ -111,3 +115,5 @@ finish:
-
- /* Mark that we don't need executable stack. */
- .section .note.GNU-stack,"",%progbits
-+
-+#endif
diff --git a/devel/boost-libs/pkg-plist b/devel/boost-libs/pkg-plist
index e6ab67628347..d1d9f60739c4 100644
--- a/devel/boost-libs/pkg-plist
+++ b/devel/boost-libs/pkg-plist
@@ -1463,22 +1463,17 @@ include/boost/bind.hpp
include/boost/bind/apply.hpp
include/boost/bind/arg.hpp
include/boost/bind/bind.hpp
-include/boost/bind/bind_cc.hpp
-include/boost/bind/bind_mf2_cc.hpp
-include/boost/bind/bind_mf_cc.hpp
-include/boost/bind/bind_template.hpp
-include/boost/bind/detail/is_same.hpp
-include/boost/bind/detail/requires_cxx11.hpp
+include/boost/bind/detail/bind_cc.hpp
+include/boost/bind/detail/bind_mf2_cc.hpp
+include/boost/bind/detail/bind_mf_cc.hpp
+include/boost/bind/detail/integer_sequence.hpp
include/boost/bind/detail/result_traits.hpp
+include/boost/bind/detail/tuple_for_each.hpp
include/boost/bind/make_adaptable.hpp
include/boost/bind/mem_fn.hpp
-include/boost/bind/mem_fn_cc.hpp
-include/boost/bind/mem_fn_template.hpp
-include/boost/bind/mem_fn_vw.hpp
include/boost/bind/placeholders.hpp
include/boost/bind/protect.hpp
include/boost/bind/std_placeholders.hpp
-include/boost/bind/storage.hpp
include/boost/blank.hpp
include/boost/blank_fwd.hpp
include/boost/call_traits.hpp
@@ -1553,6 +1548,46 @@ include/boost/callable_traits/remove_varargs.hpp
include/boost/callable_traits/return_type.hpp
include/boost/cast.hpp
include/boost/cerrno.hpp
+include/boost/charconv.hpp
+include/boost/charconv/chars_format.hpp
+include/boost/charconv/config.hpp
+include/boost/charconv/detail/apply_sign.hpp
+include/boost/charconv/detail/bit_layouts.hpp
+include/boost/charconv/detail/buffer_sizing.hpp
+include/boost/charconv/detail/compute_float32.hpp
+include/boost/charconv/detail/compute_float64.hpp
+include/boost/charconv/detail/compute_float80.hpp
+include/boost/charconv/detail/config.hpp
+include/boost/charconv/detail/dragonbox/dragonbox.hpp
+include/boost/charconv/detail/dragonbox/dragonbox_common.hpp
+include/boost/charconv/detail/dragonbox/floff.hpp
+include/boost/charconv/detail/emulated128.hpp
+include/boost/charconv/detail/fallback_routines.hpp
+include/boost/charconv/detail/fast_float/ascii_number.hpp
+include/boost/charconv/detail/fast_float/bigint.hpp
+include/boost/charconv/detail/fast_float/constexpr_feature_detect.hpp
+include/boost/charconv/detail/fast_float/decimal_to_binary.hpp
+include/boost/charconv/detail/fast_float/digit_comparison.hpp
+include/boost/charconv/detail/fast_float/fast_float.hpp
+include/boost/charconv/detail/fast_float/fast_table.hpp
+include/boost/charconv/detail/fast_float/float_common.hpp
+include/boost/charconv/detail/fast_float/parse_number.hpp
+include/boost/charconv/detail/from_chars_integer_impl.hpp
+include/boost/charconv/detail/from_chars_result.hpp
+include/boost/charconv/detail/generate_nan.hpp
+include/boost/charconv/detail/integer_search_trees.hpp
+include/boost/charconv/detail/issignaling.hpp
+include/boost/charconv/detail/memcpy.hpp
+include/boost/charconv/detail/parser.hpp
+include/boost/charconv/detail/ryu/generic_128.hpp
+include/boost/charconv/detail/ryu/ryu_generic_128.hpp
+include/boost/charconv/detail/significand_tables.hpp
+include/boost/charconv/detail/to_chars_integer_impl.hpp
+include/boost/charconv/detail/to_chars_result.hpp
+include/boost/charconv/detail/type_traits.hpp
+include/boost/charconv/from_chars.hpp
+include/boost/charconv/limits.hpp
+include/boost/charconv/to_chars.hpp
include/boost/checked_delete.hpp
include/boost/chrono.hpp
include/boost/chrono/ceil.hpp
@@ -2348,6 +2383,7 @@ include/boost/core/exchange.hpp
include/boost/core/explicit_operator_bool.hpp
include/boost/core/fclose_deleter.hpp
include/boost/core/first_scalar.hpp
+include/boost/core/functor.hpp
include/boost/core/identity.hpp
include/boost/core/ignore_unused.hpp
include/boost/core/invoke_swap.hpp
@@ -2726,6 +2762,7 @@ include/boost/exception/detail/error_info_impl.hpp
include/boost/exception/detail/exception_ptr.hpp
include/boost/exception/detail/is_output_streamable.hpp
include/boost/exception/detail/object_hex_dump.hpp
*** 639 LINES SKIPPED ***