From 97dabf9341b465511d4683c485adab2b5805a7fa Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 6 Aug 2016 22:27:19 +0200 Subject: Import changes from 1.55.0: buildtools diff --git a/tools/build/src/engine/jam.h b/tools/build/src/engine/jam.h index e1b76cb..4e2003e 100644 --- a/tools/build/src/engine/jam.h +++ b/tools/build/src/engine/jam.h @@ -163,6 +163,11 @@ #define OS_BEOS #define NO_VFORK #endif +#ifdef __HAIKU__ + #define unix + #define OSMINOR "OS=HAIKU" + #define OS_HAIKU +#endif #ifdef __bsdi__ #define OSMINOR "OS=BSDI" #define OS_BSDI -- 2.37.3 From 23b0197a83705097236b96dc0568f9db26536e80 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 6 Aug 2016 22:27:41 +0200 Subject: Import changes from 1.55.0: sourcecode diff --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp index 172a601..c706e40 100644 --- a/boost/thread/detail/platform.hpp +++ b/boost/thread/detail/platform.hpp @@ -34,7 +34,7 @@ #if ! defined BOOST_THREAD_WIN32 # define BOOST_THREAD_WIN32 #endif -#elif defined(__BEOS__) +#elif defined(__BEOS__) || defined(__HAIKU__) # define BOOST_THREAD_BEOS #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) # define BOOST_THREAD_MACOS -- 2.37.3 From cbc578bb780bf4ac4f099d419b94756e1fff963f Mon Sep 17 00:00:00 2001 From: Begasus Date: Thu, 24 Aug 2023 15:59:20 +0200 Subject: Fix macro seeing , as args on gcc8 diff --git a/boost/json/impl/array.hpp b/boost/json/impl/array.hpp index b5e75ff..393568c 100644 --- a/boost/json/impl/array.hpp +++ b/boost/json/impl/array.hpp @@ -142,9 +142,9 @@ array( std::move(sp), iter_cat{}) { - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_constructible::value); + decltype(*first)>::value)); } //---------------------------------------------------------- @@ -161,9 +161,9 @@ insert( InputIt first, InputIt last) -> iterator { - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_constructible::value); + decltype(*first)>::value)); return insert(pos, first, last, iter_cat{}); } diff --git a/boost/json/storage_ptr.hpp b/boost/json/storage_ptr.hpp index 085498b..9f886bd 100644 --- a/boost/json/storage_ptr.hpp +++ b/boost/json/storage_ptr.hpp @@ -493,9 +493,9 @@ make_shared_resource(Args&&... args) { // If this generates an error, it means that // `T` is not a memory resource. - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_base_of< - memory_resource, U>::value); + memory_resource, U>::value)); return storage_ptr(new detail::shared_resource_impl( std::forward(args)...)); diff --git a/boost/json/value_from.hpp b/boost/json/value_from.hpp index 2166987..3c5ebae 100644 --- a/boost/json/value_from.hpp +++ b/boost/json/value_from.hpp @@ -84,8 +84,8 @@ value_from( value& jv) { using bare_T = detail::remove_cvref; - BOOST_STATIC_ASSERT(detail::conversion_round_trips< - Context, bare_T, detail::value_from_conversion>::value); + BOOST_STATIC_ASSERT((detail::conversion_round_trips< + Context, bare_T, detail::value_from_conversion>::value)); using cat = detail::value_from_category; detail::value_from_impl( cat(), jv, std::forward(t), ctx ); } diff --git a/boost/json/value_to.hpp b/boost/json/value_to.hpp index 8787193..4c5215e 100644 --- a/boost/json/value_to.hpp +++ b/boost/json/value_to.hpp @@ -90,8 +90,8 @@ value_to( value const& jv, Context const& ctx ) { BOOST_STATIC_ASSERT(! std::is_reference::value); using bare_T = detail::remove_cvref; - BOOST_STATIC_ASSERT(detail::conversion_round_trips< - Context, bare_T, detail::value_to_conversion>::value); + BOOST_STATIC_ASSERT((detail::conversion_round_trips< + Context, bare_T, detail::value_to_conversion>::value)); using cat = detail::value_to_category; return detail::value_to_impl( cat(), value_to_tag(), jv, ctx ); } @@ -224,8 +224,8 @@ try_value_to( value const& jv, Context const& ctx ) { BOOST_STATIC_ASSERT(! std::is_reference::value); using bare_T = detail::remove_cvref; - BOOST_STATIC_ASSERT(detail::conversion_round_trips< - Context, bare_T, detail::value_to_conversion>::value); + BOOST_STATIC_ASSERT((detail::conversion_round_trips< + Context, bare_T, detail::value_to_conversion>::value)); using cat = detail::value_to_category; return detail::value_to_impl( cat(), try_value_to_tag(), jv, ctx ); diff --git a/boost/url/detail/any_params_iter.hpp b/boost/url/detail/any_params_iter.hpp index 0adeec2..0ae1995 100644 --- a/boost/url/detail/any_params_iter.hpp +++ b/boost/url/detail/any_params_iter.hpp @@ -172,11 +172,11 @@ struct params_iter : any_params_iter , private params_iter_base { - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_convertible< typename std::iterator_traits< FwdIt>::reference, - param_view>::value); + param_view>::value)); params_iter( FwdIt first, @@ -281,11 +281,11 @@ struct params_encoded_iter : any_params_iter , private params_encoded_iter_base { - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_convertible< typename std::iterator_traits< FwdIt>::reference, - param_view>::value); + param_view>::value)); params_encoded_iter( FwdIt first, diff --git a/boost/url/detail/any_segments_iter.hpp b/boost/url/detail/any_segments_iter.hpp index 25cc808..2cd9545 100644 --- a/boost/url/detail/any_segments_iter.hpp +++ b/boost/url/detail/any_segments_iter.hpp @@ -120,11 +120,11 @@ struct segments_iter : any_segments_iter , segments_iter_base { - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_convertible< typename std::iterator_traits< FwdIt>::reference, - core::string_view>::value); + core::string_view>::value)); segments_iter( FwdIt first, @@ -234,11 +234,11 @@ struct segments_encoded_iter : public any_segments_iter , public segments_encoded_iter_base { - BOOST_STATIC_ASSERT( + BOOST_STATIC_ASSERT(( std::is_convertible< typename std::iterator_traits< FwdIt>::reference, - core::string_view>::value); + core::string_view>::value)); segments_encoded_iter( FwdIt first, -- 2.37.3 From 778a508ca1e2a59866d2daa1a0d4dc4cc979c3fd Mon Sep 17 00:00:00 2001 From: Begasus Date: Fri, 25 Aug 2023 10:15:17 +0200 Subject: Add auto_index binary to tools diff --git a/tools/Jamfile.v2 b/tools/Jamfile.v2 index e1391c7..a580eb1 100644 --- a/tools/Jamfile.v2 +++ b/tools/Jamfile.v2 @@ -18,6 +18,7 @@ project ; TOOLS = + auto_index/build//auto_index bcp//bcp inspect/build//inspect quickbook//quickbook -- 2.37.3 From 0ab4c028cec023e08a0d6a27b0630ec4c8ade94f Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sat, 14 Oct 2017 11:47:09 +0200 Subject: Haiku needs bsd and _BSD_SOURCE. diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh index b2036f4..64c2cf0 100755 --- a/tools/build/src/engine/build.sh +++ b/tools/build/src/engine/build.sh @@ -325,6 +325,22 @@ case "${B2_TOOLSET}" in CXX_VERSION_OPT=${CXX_VERSION_OPT:---version} B2_CXXFLAGS_RELEASE="-O2 -s" B2_CXXFLAGS_DEBUG="-O0 -g" + + CXX=${CXX:=g++} + # Check whether it's MinGW GCC, which has Windows headers and none of POSIX ones. + machine=$(${CXX} -dumpmachine 2>/dev/null) + if [ $? -ne 0 ]; then + echo "B2_TOOLSET is gcc, but the 'gcc' command cannot be executed." + echo "Make sure 'gcc' is in PATH, or use a different toolset." + exit 1 + fi + case $machine in + *haiku*) + B2_CXX="${CXX} -x c++ -std=c++17" + B2_CXXFLAGS_RELEASE="-O2 -s -D_DEFAULT_SOURCE -lbsd" + B2_CXXFLAGS_DEBUG="-O0 -g" + ;; + esac ;; intel-*) -- 2.37.3 From aa75860664811c0b1b55c40b822ae483b6117193 Mon Sep 17 00:00:00 2001 From: Begasus Date: Sun, 27 Aug 2023 19:13:24 +0200 Subject: Fix missing functions to build libboost_locale diff --git a/boost/config/platform/haiku.hpp b/boost/config/platform/haiku.hpp index 04244c5..e22ac4f 100644 --- a/boost/config/platform/haiku.hpp +++ b/boost/config/platform/haiku.hpp @@ -16,11 +16,6 @@ # define BOOST_HAS_THREADS #endif -#define BOOST_NO_CXX11_HDR_TYPE_TRAITS -#define BOOST_NO_CXX11_ATOMIC_SMART_PTR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_VARIADIC_MACROS - // // thread API's not auto detected: // -- 2.37.3 From 96f306b42e35cca96d0042ab2c3d9dd5b41bd0ab Mon Sep 17 00:00:00 2001 From: Begasus Date: Mon, 28 Aug 2023 18:08:06 +0200 Subject: Fix building the tests diff --git a/libs/uuid/test/Jamfile.v2 b/libs/uuid/test/Jamfile.v2 index c74658d..926e0f7 100644 --- a/libs/uuid/test/Jamfile.v2 +++ b/libs/uuid/test/Jamfile.v2 @@ -65,12 +65,12 @@ rule test_all all_rules += [ compile compile/decl_header.cpp : "BOOST_UUID_TEST_HEADER=uuid.hpp" "BOOST_UUID_NO_TYPE_TRAITS" - ../include/boost/uuid/uuid.hpp : + $(BOOST_ROOT)/boost/uuid/uuid.hpp : compile_uuid_no_type_traits ] ; all_rules += [ compile compile/decl_header.cpp : "BOOST_UUID_TEST_HEADER=uuid.hpp" "BOOST_UUID_NO_SIMD" - ../include/boost/uuid/uuid.hpp : + $(BOOST_ROOT)/boost/uuid/uuid.hpp : compile_uuid_no_simd ] ; # ECHO All rules: $(all_rules) ; -- 2.37.3 From 058e489f6190684c910330e722119f4ab59e5b42 Mon Sep 17 00:00:00 2001 From: Begasus Date: Tue, 12 Sep 2023 20:18:37 +0200 Subject: Haiku currently doesn't have cfsetspeed diff --git a/boost/asio/impl/serial_port_base.ipp b/boost/asio/impl/serial_port_base.ipp index 4e786d4..fa1f973 100644 --- a/boost/asio/impl/serial_port_base.ipp +++ b/boost/asio/impl/serial_port_base.ipp @@ -114,7 +114,8 @@ BOOST_ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( ec = boost::asio::error::invalid_argument; BOOST_ASIO_SYNC_OP_VOID_RETURN(ec); } -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) +# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) && !defined(__HAIKU__) +// TODO re-enable this for Haiku once cfsetspeed is implemented (#18220) ::cfsetspeed(&storage, baud); # else ::cfsetispeed(&storage, baud); -- 2.37.3 From 77378ebfb9042c8718081a4b9680f8cb2274f30c Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sun, 3 Sep 2023 17:55:50 +0300 Subject: Support fn.contains(f) where f is a function. Fixes #46. diff --git a/boost/function/function_base.hpp b/boost/function/function_base.hpp index 5693e11..00c7ce8 100644 --- a/boost/function/function_base.hpp +++ b/boost/function/function_base.hpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -652,7 +653,8 @@ public: } template - bool contains(const F& f) const + typename boost::enable_if_< !boost::is_function::value, bool >::type + contains(const F& f) const { if (const F* fp = this->template target()) { @@ -662,6 +664,19 @@ public: } } + template + typename boost::enable_if_< boost::is_function::value, bool >::type + contains(Fn& f) const + { + typedef Fn* F; + if (const F* fp = this->template target()) + { + return function_equal(*fp, &f); + } else { + return false; + } + } + #if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3 // GCC 3.3 and newer cannot copy with the global operator==, due to // problems with instantiation of function return types before it diff --git a/libs/function/test/Jamfile.v2 b/libs/function/test/Jamfile.v2 index 15d401e..7be87a1 100644 --- a/libs/function/test/Jamfile.v2 +++ b/libs/function/test/Jamfile.v2 @@ -90,3 +90,6 @@ run fn_eq_bind_test.cpp ; # /usr/include/c++/4.4/bits/shared_ptr.h:146: error: cannot use typeid with -fno-rtti run contains_test.cpp : : : off gcc-4.4,0x:no : contains_test_no_rtti ; run contains2_test.cpp : : : off gcc-4.4,0x:no : contains2_test_no_rtti ; + +run contains3_test.cpp ; +run contains3_test.cpp : : : off gcc-4.4,0x:no : contains3_test_no_rtti ; diff --git a/libs/function/test/contains3_test.cpp b/libs/function/test/contains3_test.cpp new file mode 100644 index 0000000..e6130bb --- /dev/null +++ b/libs/function/test/contains3_test.cpp @@ -0,0 +1,33 @@ +// Copyright 2023 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include + +static int f() +{ + return 1; +} + +static int g() +{ + return 2; +} + +int main() +{ + { + boost::function fn; + BOOST_TEST( !fn.contains( f ) ); + BOOST_TEST( !fn.contains( g ) ); + } + + { + boost::function fn( f ); + BOOST_TEST( fn.contains( f ) ); + BOOST_TEST( !fn.contains( g ) ); + } + + return boost::report_errors(); +} -- 2.37.3 From 8c2bf25b8987a3c82ce4a3bd1ba9e405afd1f8c6 Mon Sep 17 00:00:00 2001 From: Conrad Poelman Date: Mon, 3 Aug 2020 18:35:35 -0400 Subject: Remove deprecated inheritance from std::iterator diff --git a/boost/numeric/ublas/detail/iterator.hpp b/boost/numeric/ublas/detail/iterator.hpp index 1723a30..3f5cae8 100644 --- a/boost/numeric/ublas/detail/iterator.hpp +++ b/boost/numeric/ublas/detail/iterator.hpp @@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas { * via the post increment operator. */ template - struct forward_iterator_base: - public std::iterator { + struct forward_iterator_base { + typedef IC iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; typedef I derived_iterator_type; typedef T derived_value_type; @@ -145,9 +149,13 @@ namespace boost { namespace numeric { namespace ublas { * via the post increment and post decrement operator. */ template - struct bidirectional_iterator_base: - public std::iterator { - typedef I derived_iterator_type; + struct forward_iterator_base { + typedef IC iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; + typedef I derived_iterator_type; typedef T derived_value_type; // Arithmetic @@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas { */ template // ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect - struct random_access_iterator_base: - public std::iterator { + struct forward_iterator_base { + typedef IC iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; typedef I derived_iterator_type; typedef T derived_value_type; typedef D derived_difference_type; -- 2.37.3