Boost.Python release testing failures

Hi, I'm running Boost nightly regression tests on a 64-bit Debian linux platform for quite some time. I've recently added gcc 4.4 and Boost.Python is failing miserably; c.f. http://tinyurl.com/yl7yjkv If I click on a test result URL, such as for "andreas_beyer" [http://tinyurl.com/yft8k3o], I'm redirected ("See boost/bin.v2/libs/python/build/gcc-4.4/debug") which shows that the compile succeeded, but nothing more [http://tinyurl.com/yft8k3o]. Digging into the bjam.log file, it turns out these tests are skipped because the Boost.Python library failed to build. It would be nice to improve the error reporting to make this clear. The compilation error is: "g++-4.4" -ftemplate-depth-128 -std=c++0x -O0 -fno-inline -w -g -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -I".." -I"/usr/include/python2.5" -c -o "/home/steve/Packages/boost/upstream/testing/release/results/boost/bin.v2/libs/python/build/gcc-4.4/debug/object/function_doc_signature.o" "../libs/python/src/object/function_doc_signature.cpp" ../libs/python/src/object/function_doc_signature.cpp: In static member function 'static boost::python::str boost::python::objects::function_doc_signature_generator::pretty_signature(const boost::python::objects::function*, size_t, bool)': ../libs/python/src/object/function_doc_signature.cpp:238: error: no match for 'operator%' in '"%s %s(%s%s%s%s)" % std::make_tuple(_Elements&& ...) [with _Elements = boost::python::str&, const boost::python::api::object&, boost::python::str, boost::python::str, boost::python::str, std::string](((const boost::python::api::object&)(& f->boost::python::objects::function::m_name)), ((boost::python::str&&)(& boost::python::str::join(const T&) const [with T = boost::python::api::object_slice](((const boost::python::api::object_slice&)((const boost::python::api::object_slice*)(& boost::python::api::object_operators<U>::slice(const T&, const V&) [with T = int, V = size_t, U = boost::python::api::object](((const int&)((const int*)(&0))), ((const size_t&)((const size_t*)(&(((size_t)arity) - n_overloads))))))))))), ((boost::python::str&&)(&((n_overloads != 0u) ? ((((size_t)arity) != n_overloads) ? boost::python::str(((const char*)" [,")) : boost::python::str(((const char*)"[ "))) : boost::python::str()))), ((boost::python::str&&)(& boost::python::str::join(const T&) const [with T = boost::python::api::object_slice](((const boost::python::api::object_slice&)((const boost::python::api::object_slice*)(& boost::python::api::object_operators<U>::slice(const T&, const V&) [with T = size_t, V = unsigned int, U = boost::python::api::object](((const size_t&)((const size_t*)(&(((size_t)arity) - n_overloads)))), ((const unsigned int&)((const unsigned int*)(& arity)))))))))), ((std::string&&)(& std::basic_string<char, std::char_traits<char>, std::allocator<char> >(n_overloads, 93, ((const std::allocator<char>&)((const std::allocator<char>*)(& std::allocator<char>())))))))' ../boost/python/object_operators.hpp:104: note: candidates are: boost::python::api::object boost::python::api::operator%(const boost::python::api::object&, const boost::python::api::object&) ../libs/python/src/object/function_doc_signature.cpp:249: error: no match for 'operator%' in '"%s(%s%s%s%s) -> %s" % std::make_tuple(_Elements&& ...) [with _Elements = const boost::python::api::object&, boost::python::str, boost::python::str, boost::python::str, std::string, boost::python::str&](((boost::python::str&&)(& boost::python::str::join(const T&) const [with T = boost::python::api::object_slice](((const boost::python::api::object_slice&)((const boost::python::api::object_slice*)(& boost::python::api::object_operators<U>::slice(const T&, const V&) [with T = int, V = size_t, U = boost::python::api::object](((const int&)((const int*)(&0))), ((const size_t&)((const size_t*)(&(((size_t)arity) - n_overloads))))))))))), ((boost::python::str&&)(&((n_overloads != 0u) ? ((((size_t)arity) != n_overloads) ? boost::python::str(((const char*)" [,")) : boost::python::str(((const char*)"[ "))) : boost::python::str()))), ((boost::python::str&&)(& boost::python::str::join(const T&) const [with T = boost::python::api::object_slice](((const boost::python::api::object_slice&)((const boost::python::api::object_slice*)(& boost::python::api::object_operators<U>::slice(const T&, const V&) [with T = size_t, V = unsigned int, U = boost::python::api::object](((const size_t&)((const size_t*)(&(((size_t)arity) - n_overloads)))), ((const unsigned int&)((const unsigned int*)(& arity)))))))))), ((std::string&&)(& std::basic_string<char, std::char_traits<char>, std::allocator<char> >(n_overloads, 93, ((const std::allocator<char>&)((const std::allocator<char>*)(& std::allocator<char>())))))), ((boost::python::str&)(& ret_type)))' ../boost/python/object_operators.hpp:104: note: candidates are: boost::python::api::object boost::python::api::operator%(const boost::python::api::object&, const boost::python::api::object&) ../libs/python/src/object/function_doc_signature.cpp:262: error: no match for 'operator%' in '"%s %s(%s%s%s%s) %s" % std::make_tuple(_Elements&& ...) [with _Elements = boost::python::str, const boost::python::api::object&, boost::python::str, boost::python::str, boost::python::str, std::string, boost::python::str](((const boost::python::api::object&)(& f->boost::python::objects::function::m_name)), ((boost::python::str&&)(& boost::python::str::join(const T&) const [with T = boost::python::api::object_slice](((const boost::python::api::object_slice&)((const boost::python::api::object_slice*)(& boost::python::api::object_operators<U>::slice(const T&, const V&) [with T = int, V = size_t, U = boost::python::api::object](((const int&)((const int*)(&0))), ((const size_t&)((const size_t*)(&(((size_t)arity) - n_overloads))))))))))), ((boost::python::str&&)(&((n_overloads != 0u) ? ((((size_t)arity) != n_overloads) ? boost::python::str(((const char*)" [,")) : boost::python::str(((const char*)"[ "))) : boost::python::str()))), ((boost::python::str&&)(& boost::python::str::join(const T&) const [with T = boost::python::api::object_slice](((const boost::python::api::object_slice&)((const boost::python::api::object_slice*)(& boost::python::api::object_operators<U>::slice(const T&, const V&) [with T = size_t, V = unsigned int, U = boost::python::api::object](((const size_t&)((const size_t*)(&(((size_t)arity) - n_overloads)))), ((const unsigned int&)((const unsigned int*)(& arity)))))))))), ((std::string&&)(& std::basic_string<char, std::char_traits<char>, std::allocator<char> >(n_overloads, 93, ((const std::allocator<char>&)((const std::allocator<char>*)(& std::allocator<char>())))))), ((boost::python::str&&)(&(cpp_types ? boost::python::str(((const char*)"")) : boost::python::str(((const boost::python::str&)((const boost::python::str*)(& ret_type))))))))' ../boost/python/object_operators.hpp:104: note: candidates are: boost::python::api::object boost::python::api::operator%(const boost::python::api::object&, const boost::python::api::object&) ...failed gcc.compile.c++ /home/steve/Packages/boost/upstream/testing/release/results/boost/bin.v2/libs/python/build/gcc-4.4/debug/object/function_doc_signature.o... I hope this helps the Boost.Python maintainers to fix it. Let me know if you need more info. Thanks, -Steve

On 11/01/2009 04:27 PM, Steve M. Robbins wrote:
I hope this helps the Boost.Python maintainers to fix it. Let me know if you need more info.
Steve, thanks for the report. Could you submit the problem to the issue tracker ? I'm a little surprised by the error, as I do test boost.python locally (GCC 4.4, x86_64 GNU/Linux) occasionally, and I haven't seen any issues on trunk after committing the last big chunk of work (the Python 3 port changes). Thanks, Stefan -- ...ich hab' noch einen Koffer in Berlin...

-std=c++0x
Could this be the problem? -- I use Boost.Python with gcc 4.4 all the time, but I've never tried it in c++0x mode. Ralf ----- Original Message ---- From: Steve M. Robbins <steve@sumost.ca> To: boost@lists.boost.org Sent: Sun, November 1, 2009 1:27:27 PM Subject: [boost] Boost.Python release testing failures Hi, I'm running Boost nightly regression tests on a 64-bit Debian linux platform for quite some time. I've recently added gcc 4.4 and Boost.Python is failing miserably; c.f. http://tinyurl.com/yl7yjkv If I click on a test result URL, such as for "andreas_beyer" [http://tinyurl.com/yft8k3o], I'm redirected ("See boost/bin.v2/libs/python/build/gcc-4.4/debug") which shows that the compile succeeded, but nothing more [http://tinyurl.com/yft8k3o]. Digging into the bjam.log file, it turns out these tests are skipped because the Boost.Python library failed to build. It would be nice to improve the error reporting to make this clear. The compilation error is: "g++-4.4" -ftemplate-depth-128 -std=c++0x -O0 -fno-inline -w -g -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_PYTHON_SOURCE -I".." -I"/usr/include/python2.5" -c -o "/home/steve/Packages/boost/upstream/testing/release/results/boost/bin.v2/libs/python/build/gcc-4.4/debug/object/function_doc_signature.o" "../libs/python/src/object/function_doc_signature.cpp"

On Tue, Nov 03, 2009 at 11:04:50PM -0800, Ralf W. Grosse-Kunstleve wrote:
-std=c++0x
Could this be the problem? -- I use Boost.Python with gcc 4.4 all the time, but I've never tried it in c++0x mode.
Yeah, that is likely the problem. I had forgotten that I was specifically testing C++0x mode. Richard Webb has posted some promising-looking patches to the ticket I opened: https://svn.boost.org/trac/boost/ticket/3584 -steve
participants (3)
-
Ralf W. Grosse-Kunstleve
-
Stefan Seefeld
-
Steve M. Robbins