From 6b8e76e9146bbc229ce8b223ee76c4576546ac28 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Mon, 18 Aug 2014 15:08:42 +0100 Subject: [PATCH 01/15] Add metadata file. --- meta/libraries.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 meta/libraries.json diff --git a/meta/libraries.json b/meta/libraries.json new file mode 100644 index 0000000..32685ed --- /dev/null +++ b/meta/libraries.json @@ -0,0 +1,17 @@ +{ + "key": "phoenix", + "name": "Phoenix", + "authors": [ + "Joel de Guzman", + "Dan Marsden", + "Thomas Heller" + ], + "description": "Define small unnamed function objects at the actual call site, and more.", + "category": [ + "Function-objects" + ], + "maintainers": [ + "Joel de Guzman ", + "Thomas Heller " + ] +} From deb5b7c7502116c4bbf38d2628fc04114fd5572b Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Fri, 3 Oct 2014 22:10:38 +0000 Subject: [PATCH 02/15] Add the missing modulo assign operator in the using list --- include/boost/phoenix/operator/arithmetic.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/boost/phoenix/operator/arithmetic.hpp b/include/boost/phoenix/operator/arithmetic.hpp index 03d2dcc..fda6277 100644 --- a/include/boost/phoenix/operator/arithmetic.hpp +++ b/include/boost/phoenix/operator/arithmetic.hpp @@ -42,6 +42,7 @@ namespace boost { namespace phoenix using proto::exprns_::operator-=; using proto::exprns_::operator*=; using proto::exprns_::operator/=; + using proto::exprns_::operator%=; using proto::exprns_::operator+; using proto::exprns_::operator-; using proto::exprns_::operator*; From 77a55a56303a9401bbf5c16495f7f669cff94828 Mon Sep 17 00:00:00 2001 From: Marcel Raad Date: Wed, 26 Nov 2014 23:26:59 +0100 Subject: [PATCH 03/15] Compile fix for MSVC 2015 Preview hash_set and hash_map are deprecated in Visual C++ 2015 and result in a compile error by default. BOOST_DINKUMWARE_STDLIB is still 610. --- test/algorithm/querying.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/algorithm/querying.cpp b/test/algorithm/querying.cpp index 43f588c..5d1072d 100644 --- a/test/algorithm/querying.cpp +++ b/test/algorithm/querying.cpp @@ -19,7 +19,7 @@ #include BOOST_HASH_MAP_HEADER #define BOOST_PHOENIX_HAS_HASH #define BOOST_PHOENIX_HASH_NAMESPACE BOOST_STD_EXTENSION_NAMESPACE -#elif defined(BOOST_DINKUMWARE_STDLIB) +#elif defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB < 610) #include #include #define BOOST_PHOENIX_HAS_HASH From 7a38e0a451ff994d254c196bfe9547c4d745d139 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Sat, 20 Dec 2014 01:15:30 +0000 Subject: [PATCH 04/15] bind/bind_member_variable Experiments with disable_if not complete yet. --- .../boost/phoenix/bind/bind_member_variable.hpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/include/boost/phoenix/bind/bind_member_variable.hpp b/include/boost/phoenix/bind/bind_member_variable.hpp index 56515de..86e9dcb 100644 --- a/include/boost/phoenix/bind/bind_member_variable.hpp +++ b/include/boost/phoenix/bind/bind_member_variable.hpp @@ -8,6 +8,7 @@ #ifndef PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP #define PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP +#include #include #include #include @@ -16,10 +17,11 @@ namespace boost { namespace phoenix { template inline - typename - detail::expression::function_eval< + typename boost::disable_if< + boost::is_member_pointer, + typename detail::expression::function_eval< detail::member_variable - , ClassA + , ClassA >::type >::type const bind(RT ClassT::*mp, ClassA const& obj) { @@ -31,10 +33,11 @@ namespace boost { namespace phoenix template inline - typename - detail::expression::function_eval< + typename boost::disable_if< + boost::is_member_pointer, + typename detail::expression::function_eval< detail::member_variable - , ClassT + , ClassT >::type >::type const bind(RT ClassT::*mp, ClassT& obj) { From c7d816504f861c59517fdc5dcf502fe1b89214f5 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Sat, 20 Dec 2014 01:27:29 +0000 Subject: [PATCH 05/15] bind/bind_member_variable.hpp Ammend experiment, still not working. --- include/boost/phoenix/bind/bind_member_variable.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/phoenix/bind/bind_member_variable.hpp b/include/boost/phoenix/bind/bind_member_variable.hpp index 86e9dcb..09d6ddb 100644 --- a/include/boost/phoenix/bind/bind_member_variable.hpp +++ b/include/boost/phoenix/bind/bind_member_variable.hpp @@ -18,7 +18,7 @@ namespace boost { namespace phoenix template inline typename boost::disable_if< - boost::is_member_pointer, + boost::is_member_function_pointer, typename detail::expression::function_eval< detail::member_variable , ClassA >::type @@ -34,7 +34,7 @@ namespace boost { namespace phoenix template inline typename boost::disable_if< - boost::is_member_pointer, + boost::is_member_function_pointer, typename detail::expression::function_eval< detail::member_variable , ClassT >::type From 4cfbfcedbac6d3a5823f5b7fddfeef9dfd82b1b8 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Sat, 20 Dec 2014 19:09:25 +0000 Subject: [PATCH 06/15] bind/bind_member_variable.hpp New version runs all tests using boost::lazy_disable_if to resolve overloading problems. --- .../boost/phoenix/bind/bind_member_variable.hpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/boost/phoenix/bind/bind_member_variable.hpp b/include/boost/phoenix/bind/bind_member_variable.hpp index 09d6ddb..5e594b5 100644 --- a/include/boost/phoenix/bind/bind_member_variable.hpp +++ b/include/boost/phoenix/bind/bind_member_variable.hpp @@ -17,12 +17,12 @@ namespace boost { namespace phoenix { template inline - typename boost::disable_if< - boost::is_member_function_pointer, + typename boost::lazy_disable_if< + boost::is_member_function_pointer, typename detail::expression::function_eval< detail::member_variable - , ClassA >::type - >::type const + , ClassA >//::type + >::type const bind(RT ClassT::*mp, ClassA const& obj) { typedef detail::member_variable mp_type; @@ -33,11 +33,11 @@ namespace boost { namespace phoenix template inline - typename boost::disable_if< - boost::is_member_function_pointer, + typename boost::lazy_disable_if< + boost::is_member_function_pointer, typename detail::expression::function_eval< detail::member_variable - , ClassT >::type + , ClassT >//::type >::type const bind(RT ClassT::*mp, ClassT& obj) { From bc112ce8303b7be590390c310b1f0aa30c62f905 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Sat, 20 Dec 2014 23:29:18 +0000 Subject: [PATCH 07/15] Changelog Update for bind bug fix. --- ChangeLog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5c7f5a1..884f832 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,12 @@ Added test bug5875 - test withdrawn for further checking. CHANGELOG - DEVELOP +- Testing fix for failures of tests as follows + bind_member_function_tests, bind_mf2_test, bind_test + with compilers including gcc 4.9.0 and clang 3.5 + This involves use of boost::lazy_disable_if to resolve + the choice of overloaded bind functions in + bind/bind_member_variable.hpp - #9742 New tests for_each and for_test to attempt to resolve this. - V3.0.6 From 1eda6f3f040650d53dc60c7857d80b6cfa0ca636 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Mon, 22 Dec 2014 21:50:57 +0000 Subject: [PATCH 08/15] bug7165 and 7166 test on phoenix/core only to reduce compile load. --- test/regression/bug7165.cpp | 2 +- test/regression/bug7166.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/regression/bug7165.cpp b/test/regression/bug7165.cpp index cd131ae..c4f7442 100644 --- a/test/regression/bug7165.cpp +++ b/test/regression/bug7165.cpp @@ -8,7 +8,7 @@ ==============================================================================*/ #define BOOST_PHOENIX_LIMIT 20 -#include +#include int main() { diff --git a/test/regression/bug7166.cpp b/test/regression/bug7166.cpp index e0a73a3..1b3bc76 100644 --- a/test/regression/bug7166.cpp +++ b/test/regression/bug7166.cpp @@ -9,7 +9,7 @@ #define BOOST_PROTO_MAX_ARITY 10 #define BOOST_PHOENIX_LIMIT 20 -#include +#include int main() { From b79ebb697fe26762b60a02b1b00fb0e3fa0eb50e Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Mon, 22 Dec 2014 21:53:36 +0000 Subject: [PATCH 09/15] Note changes to bug7165 and bug7166 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 884f832..3bf43e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,7 @@ Added test bug5875 - test withdrawn for further checking. CHANGELOG - DEVELOP +- #7165 and #7166 Change tests to phoenix/core.hpp to reduce compiler load - Testing fix for failures of tests as follows bind_member_function_tests, bind_mf2_test, bind_test with compilers including gcc 4.9.0 and clang 3.5 From f5fad3000a55db758576be58f3d426f49ecd1ac5 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Mon, 22 Dec 2014 22:09:36 +0000 Subject: [PATCH 10/15] test/stdlib/cmath.cpp Change pow test. --- test/stdlib/cmath.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/stdlib/cmath.cpp b/test/stdlib/cmath.cpp index 6be29cd..5021c7f 100644 --- a/test/stdlib/cmath.cpp +++ b/test/stdlib/cmath.cpp @@ -18,9 +18,9 @@ int main() using namespace boost::phoenix::arg_names; boost::function f = fabs(_1 - _2) < eps; - double x = boost::phoenix::pow(_1,_2)(2.,0.); + double x = boost::phoenix::pow(_1,_2)(2.,2.); BOOST_TEST(f(0.0, 0 * eps)); BOOST_TEST(!f(0.0, eps)); - BOOST_TEST(fabs(x-1.) < eps ); + BOOST_TEST(fabs(x-4.) < eps ); } From c7c2cefc46ac25a3f4a6c5a8c61c33f6f0edad40 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Mon, 22 Dec 2014 22:17:51 +0000 Subject: [PATCH 11/15] test/stdlib/cmath.cpp Add test of atan2 and tan to check 1 and 2 argument functions. --- test/stdlib/cmath.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/stdlib/cmath.cpp b/test/stdlib/cmath.cpp index 5021c7f..aa1e798 100644 --- a/test/stdlib/cmath.cpp +++ b/test/stdlib/cmath.cpp @@ -19,8 +19,11 @@ int main() boost::function f = fabs(_1 - _2) < eps; double x = boost::phoenix::pow(_1,_2)(2.,2.); + double y = boost::phoenix::atan2(_1,_2)(1.,1.); + double z = boost::phoenix::tan(_1)(y); BOOST_TEST(f(0.0, 0 * eps)); BOOST_TEST(!f(0.0, eps)); BOOST_TEST(fabs(x-4.) < eps ); + BOOST_TEST(fabs(z-1.) < eps ); } From 32b8c45b236b13679819d8cd7f394b2907a3775b Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Mon, 22 Dec 2014 22:20:02 +0000 Subject: [PATCH 12/15] Changelog. Add note on changes to cmath test. --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 3bf43e6..a6da241 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,7 @@ Added test bug5875 - test withdrawn for further checking. CHANGELOG - DEVELOP +- Add more cases to cmath test to test failures on some compilers. - #7165 and #7166 Change tests to phoenix/core.hpp to reduce compiler load - Testing fix for failures of tests as follows bind_member_function_tests, bind_mf2_test, bind_test From 946a1db4f8e448e8f72e350c01de826a213f7a27 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Tue, 23 Dec 2014 12:21:05 +0000 Subject: [PATCH 13/15] bind/bind_member_variable.hpp Add (c) for John Fletcher --- include/boost/phoenix/bind/bind_member_variable.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/boost/phoenix/bind/bind_member_variable.hpp b/include/boost/phoenix/bind/bind_member_variable.hpp index 5e594b5..de03d43 100644 --- a/include/boost/phoenix/bind/bind_member_variable.hpp +++ b/include/boost/phoenix/bind/bind_member_variable.hpp @@ -1,7 +1,8 @@ /*============================================================================= Copyright (c) 2001-2007 Joel de Guzman + Copyright (c) 2014 John Fletcher - Distributed under the Boost Software License, Version 1.0. (See accompanying + Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ From 20d0fcda37024085204efdefa45d149bb9834557 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Tue, 23 Dec 2014 12:21:22 +0000 Subject: [PATCH 14/15] version.hpp Update version to 3.1.0 --- include/boost/phoenix/version.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/phoenix/version.hpp b/include/boost/phoenix/version.hpp index 41166f5..8f9d93f 100644 --- a/include/boost/phoenix/version.hpp +++ b/include/boost/phoenix/version.hpp @@ -14,7 +14,7 @@ // This is the version of the library // /////////////////////////////////////////////////////////////////////////////// -#define BOOST_PHOENIX_VERSION 0x3006 // 3.0.6 +#define BOOST_PHOENIX_VERSION 0x3100 // 3.1.0 // boost/predef is not in Boost before 1.55.0 #include @@ -26,7 +26,7 @@ #endif #ifdef BOOST_PHOENIX_HAVE_BOOST_PREDEF -#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,0,6) +#define BOOST_PHOENIX_VERSION_NUMBER = BOOST_VERSION_NUMBER(3,1,0) #endif #endif From ed06bdd7fb6ef6053467af492835f2ff209bebb7 Mon Sep 17 00:00:00 2001 From: John Fletcher Date: Tue, 23 Dec 2014 12:24:17 +0000 Subject: [PATCH 15/15] Changelog Update for 3.1.0 release. --- ChangeLog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index a6da241..c318dfa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,9 @@ Added test bug5875 - test withdrawn for further checking. CHANGELOG - DEVELOP + +- V3.1.0 +- Bump version number to 3.1.0 in version.hpp and branch for release. - Add more cases to cmath test to test failures on some compilers. - #7165 and #7166 Change tests to phoenix/core.hpp to reduce compiler load - Testing fix for failures of tests as follows