Boost logo

Boost :

Subject: [boost] Status of Python 3 support for Boost.MPI?
From: Steve M. Robbins (steve_at_[hidden])
Date: 2010-09-07 02:16:43


Hi,

I just tried to build boost 1.44 using Python 3.1 and two files in mpi
failed to compile. Is this easy to fix?

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -g -D_REENTRANT -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -DNDEBUG -I"." -I"/usr/include/python3.1" -I"/usr/lib/openmpi/include" -I"/usr/lib/openmpi/include/openmpi" -c -o "bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/datatypes.o" "libs/mpi/src/python/datatypes.cpp"

In file included from ./boost/python/detail/wrap_python.hpp:50,
                 from ./boost/python/detail/prefix.hpp:13,
                 from ./boost/python/ssize_t.hpp:9,
                 from ./boost/python/object.hpp:8,
                 from ./boost/mpi/python/serialize.hpp:25,
                 from libs/mpi/src/python/datatypes.cpp:13:
/usr/include/python3.1/pyconfig.h:1117:1: warning: "_POSIX_C_SOURCE" redefined
In file included from /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/bits/stl_algobase.h:60,
                 from /usr/include/c++/4.4/bits/stl_tree.h:62,
                 from /usr/include/c++/4.4/map:60,
                 from /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:36,
                 from /usr/lib/openmpi/include/mpi.h:1886,
                 from ./boost/mpi/config.hpp:20,
                 from ./boost/mpi/python/config.hpp:15,
                 from ./boost/mpi/python/serialize.hpp:23,
                 from libs/mpi/src/python/datatypes.cpp:13:
/usr/include/features.h:158:1: warning: this is the location of the previous definition
In file included from ./boost/python/detail/wrap_python.hpp:50,
                 from ./boost/python/detail/prefix.hpp:13,
                 from ./boost/python/ssize_t.hpp:9,
                 from ./boost/python/object.hpp:8,
                 from ./boost/mpi/python/serialize.hpp:25,
                 from libs/mpi/src/python/datatypes.cpp:13:
/usr/include/python3.1/pyconfig.h:1139:1: warning: "_XOPEN_SOURCE" redefined
In file included from /usr/include/c++/4.4/x86_64-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.4/x86_64-linux-gnu/bits/c++config.h:243,
                 from /usr/include/c++/4.4/bits/stl_algobase.h:60,
                 from /usr/include/c++/4.4/bits/stl_tree.h:62,
                 from /usr/include/c++/4.4/map:60,
                 from /usr/lib/openmpi/include/openmpi/ompi/mpi/cxx/mpicxx.h:36,
                 from /usr/lib/openmpi/include/mpi.h:1886,
                 from ./boost/mpi/config.hpp:20,
                 from ./boost/mpi/python/config.hpp:15,
                 from ./boost/mpi/python/serialize.hpp:23,
                 from libs/mpi/src/python/datatypes.cpp:13:
/usr/include/features.h:160:1: warning: this is the location of the previous definition
libs/mpi/src/python/datatypes.cpp: In function ‘void boost::mpi::python::export_datatypes()’:
libs/mpi/src/python/datatypes.cpp:20: error: ‘PyInt_Type’ was not declared in this scope
In file included from ./boost/function/detail/prologue.hpp:17,
                 from ./boost/function/function_template.hpp:13,
                 from ./boost/function/detail/maybe_include.hpp:13,
                 from ./boost/function/function0.hpp:11,
                 from ./boost/python/errors.hpp:13,
                 from ./boost/python/handle.hpp:11,
                 from ./boost/python/converter/arg_to_python_base.hpp:7,
                 from ./boost/python/converter/arg_to_python.hpp:14,
                 from ./boost/python/call.hpp:15,
                 from ./boost/python/object_core.hpp:14,
                 from ./boost/python/object.hpp:9,
                 from ./boost/mpi/python/serialize.hpp:25,
                 from libs/mpi/src/python/datatypes.cpp:13:
./boost/function/function_base.hpp: In static member function ‘static void boost::detail::function::functor_manager_common<Functor>::manage_small(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<bool>]’:
./boost/function/function_base.hpp:360: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, mpl_::true_) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<bool>]’
./boost/function/function_base.hpp:406: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, boost::detail::function::function_obj_tag) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<bool>]’
./boost/function/function_base.hpp:434: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manage(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<bool>]’
./boost/function/function_template.hpp:913: instantiated from ‘void boost::function3<R, T1, T2, T3>::assign_to(Functor) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<bool>, R = void, T0 = boost::mpi::packed_oarchive&, T1 = const boost::python::api::object&, T2 = const unsigned int]’
./boost/function/function_template.hpp:722: instantiated from ‘boost::function3<R, T1, T2, T3>::function3(Functor, typename boost::enable_if_c<boost::type_traits::ice_not::value, int>::type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<bool>, R = void, T0 = boost::mpi::packed_oarchive&, T1 = const boost::python::api::object&, T2 = const unsigned int]’
./boost/mpi/python/serialize.hpp:276: instantiated from ‘void boost::python::detail::direct_serialization_table<IArchiver, OArchiver>::register_type(const T&, PyTypeObject*) [with T = bool, IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive]’
./boost/mpi/python/serialize.hpp:389: instantiated from ‘void boost::python::register_serialized(const T&, PyTypeObject*) [with IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive, T = bool]’
./boost/mpi/python/serialize.hpp:534: instantiated from ‘void boost::mpi::python::register_serialized(const T&, PyTypeObject*) [with T = bool]’
libs/mpi/src/python/datatypes.cpp:21: instantiated from here
./boost/function/function_base.hpp:321: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp:325: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp: In static member function ‘static void boost::detail::function::functor_manager_common<Functor>::manage_small(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<bool>]’:
./boost/function/function_base.hpp:360: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, mpl_::true_) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<bool>]’
./boost/function/function_base.hpp:406: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, boost::detail::function::function_obj_tag) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<bool>]’
./boost/function/function_base.hpp:434: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manage(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<bool>]’
./boost/function/function_template.hpp:913: instantiated from ‘void boost::function3<R, T1, T2, T3>::assign_to(Functor) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<bool>, R = void, T0 = boost::mpi::packed_iarchive&, T1 = boost::python::api::object&, T2 = const unsigned int]’
./boost/function/function_template.hpp:722: instantiated from ‘boost::function3<R, T1, T2, T3>::function3(Functor, typename boost::enable_if_c<boost::type_traits::ice_not::value, int>::type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<bool>, R = void, T0 = boost::mpi::packed_iarchive&, T1 = boost::python::api::object&, T2 = const unsigned int]’
./boost/mpi/python/serialize.hpp:276: instantiated from ‘void boost::python::detail::direct_serialization_table<IArchiver, OArchiver>::register_type(const T&, PyTypeObject*) [with T = bool, IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive]’
./boost/mpi/python/serialize.hpp:389: instantiated from ‘void boost::python::register_serialized(const T&, PyTypeObject*) [with IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive, T = bool]’
./boost/mpi/python/serialize.hpp:534: instantiated from ‘void boost::mpi::python::register_serialized(const T&, PyTypeObject*) [with T = bool]’
libs/mpi/src/python/datatypes.cpp:21: instantiated from here
./boost/function/function_base.hpp:321: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp:325: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp: In static member function ‘static void boost::detail::function::functor_manager_common<Functor>::manage_small(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<double>]’:
./boost/function/function_base.hpp:360: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, mpl_::true_) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<double>]’
./boost/function/function_base.hpp:406: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, boost::detail::function::function_obj_tag) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<double>]’
./boost/function/function_base.hpp:434: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manage(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<double>]’
./boost/function/function_template.hpp:913: instantiated from ‘void boost::function3<R, T1, T2, T3>::assign_to(Functor) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<double>, R = void, T0 = boost::mpi::packed_oarchive&, T1 = const boost::python::api::object&, T2 = const unsigned int]’
./boost/function/function_template.hpp:722: instantiated from ‘boost::function3<R, T1, T2, T3>::function3(Functor, typename boost::enable_if_c<boost::type_traits::ice_not::value, int>::type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_saver<double>, R = void, T0 = boost::mpi::packed_oarchive&, T1 = const boost::python::api::object&, T2 = const unsigned int]’
./boost/mpi/python/serialize.hpp:276: instantiated from ‘void boost::python::detail::direct_serialization_table<IArchiver, OArchiver>::register_type(const T&, PyTypeObject*) [with T = double, IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive]’
./boost/mpi/python/serialize.hpp:389: instantiated from ‘void boost::python::register_serialized(const T&, PyTypeObject*) [with IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive, T = double]’
./boost/mpi/python/serialize.hpp:534: instantiated from ‘void boost::mpi::python::register_serialized(const T&, PyTypeObject*) [with T = double]’
libs/mpi/src/python/datatypes.cpp:22: instantiated from here
./boost/function/function_base.hpp:321: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp:325: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp: In static member function ‘static void boost::detail::function::functor_manager_common<Functor>::manage_small(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<double>]’:
./boost/function/function_base.hpp:360: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, mpl_::true_) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<double>]’
./boost/function/function_base.hpp:406: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manager(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type, boost::detail::function::function_obj_tag) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<double>]’
./boost/function/function_base.hpp:434: instantiated from ‘static void boost::detail::function::functor_manager<Functor>::manage(const boost::detail::function::function_buffer&, boost::detail::function::function_buffer&, boost::detail::function::functor_manager_operation_type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<double>]’
./boost/function/function_template.hpp:913: instantiated from ‘void boost::function3<R, T1, T2, T3>::assign_to(Functor) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<double>, R = void, T0 = boost::mpi::packed_iarchive&, T1 = boost::python::api::object&, T2 = const unsigned int]’
./boost/function/function_template.hpp:722: instantiated from ‘boost::function3<R, T1, T2, T3>::function3(Functor, typename boost::enable_if_c<boost::type_traits::ice_not::value, int>::type) [with Functor = boost::python::detail::direct_serialization_table<boost::mpi::packed_iarchive, boost::mpi::packed_oarchive>::default_loader<double>, R = void, T0 = boost::mpi::packed_iarchive&, T1 = boost::python::api::object&, T2 = const unsigned int]’
./boost/mpi/python/serialize.hpp:276: instantiated from ‘void boost::python::detail::direct_serialization_table<IArchiver, OArchiver>::register_type(const T&, PyTypeObject*) [with T = double, IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive]’
./boost/mpi/python/serialize.hpp:389: instantiated from ‘void boost::python::register_serialized(const T&, PyTypeObject*) [with IArchiver = boost::mpi::packed_iarchive, OArchiver = boost::mpi::packed_oarchive, T = double]’
./boost/mpi/python/serialize.hpp:534: instantiated from ‘void boost::mpi::python::register_serialized(const T&, PyTypeObject*) [with T = double]’
libs/mpi/src/python/datatypes.cpp:22: instantiated from here
./boost/function/function_base.hpp:321: warning: dereferencing type-punned pointer will break strict-aliasing rules
./boost/function/function_base.hpp:325: warning: dereferencing type-punned pointer will break strict-aliasing rules
...failed gcc.compile.c++ bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/datatypes.o...

and

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -g -D_REENTRANT -pthread -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1 -DNDEBUG -I"." -I"/usr/include/python3.1" -I"/usr/lib/openmpi/include" -I"/usr/lib/openmpi/include/openmpi" -c -o "bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/py_environment.o" "libs/mpi/src/python/py_environment.cpp"

libs/mpi/src/python/py_environment.cpp: In function ‘bool boost::mpi::python::mpi_init(boost::python::list, bool)’:
libs/mpi/src/python/py_environment.cpp:53: error: cannot convert ‘char**’ to ‘wchar_t**’ for argument ‘2’ to ‘void PySys_SetArgv(int, wchar_t**)’
...failed gcc.compile.c++ bin.v2/libs/mpi/build/gcc-4.4.5/release/debug-symbols-on/python-3.1/threading-multi/python/py_environment.o...

Thanks,
-Steve




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk