Adam Majer
e1c5a89560
- New upstream version 1.64.0 + process - new library providing cross platform methods to - create child processes - setup stream for child processes - sync and async communication streams with children - sync and async wait - process termination + geometry library had some breaking changes, - ublas_transformer is renamed to matrix_transformer - explicit modifier is added to constructors of rtree index::dynamic_* parameters - strategy::area::huiller replaced by strategy::area::spherical + context library updates - deprecated API:execution-context - fixed bad assembly for fcontext on ppc64/sysv/elf + Updated libraries: any, atomic, config, container, context, conversion, core, coroutine2, fiber, hash, interprocess, intrusive, lexicalcast, math, multi-index containers, multiprecision, predef, program options, regex, smart pointers, test ,typeindex, typetraits, unordered, variant + for details, see http://www.boost.org/users/history/version_1_64_0.html - Build PyNumpy module + add build requires on python-numpy - test_lowcase.patch: upstreamed - refreshed patches: boost-strict_aliasing.patch, gcc_path.patch, python_mpi.patch - mpi_upstream.patch: pending upstream fixes to OpenMPI build - python_library_name.patch: we are building python versions in different stagings so drop library renames. OBS-URL: https://build.opensuse.org/request/show/489639 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=194
179 lines
6.4 KiB
Diff
179 lines
6.4 KiB
Diff
commit f5bdcc1ebfe954bb64835f2a0efd94471da42207
|
|
Author: Jonathan Wakely <github@kayari.org>
|
|
Date: Thu Feb 23 02:18:58 2017 +0000
|
|
|
|
Replace boost::serialization::detail::get_data function. (#39)
|
|
|
|
commit 947d17157304ceb93926ab961487e9c86fc7c2d2
|
|
Author: Jonathan Wakely <github@kayari.org>
|
|
Date: Thu Feb 23 02:19:45 2017 +0000
|
|
|
|
Add header for serialization::make_array (#40)
|
|
|
|
commit b21d95676028e45a6743be9898306f13fe715282
|
|
Author: Andrey Semashev <Lastique@users.noreply.github.com>
|
|
Date: Thu Feb 23 05:17:32 2017 +0300
|
|
|
|
Fix incorrect usage of auto_ptr to free an array (#38)
|
|
|
|
The `auto_ptr` would use `delete p` to free an array allocated with `operator new[]`, which could result in heap corruption. Replaced it with `scoped_array`.
|
|
|
|
commit 98c406a77f8506550276a8e81ad6ed0c961fca8f
|
|
Author: Alain Miniussi <alain.miniussi@oca.eu>
|
|
Date: Thu Feb 23 11:26:49 2017 +0100
|
|
|
|
documentation typo
|
|
|
|
Index: boost_1_64_0/boost/mpi/python/serialize.hpp
|
|
===================================================================
|
|
--- boost_1_64_0.orig/boost/mpi/python/serialize.hpp
|
|
+++ boost_1_64_0/boost/mpi/python/serialize.hpp
|
|
@@ -26,7 +26,6 @@
|
|
#include <boost/python/str.hpp>
|
|
#include <boost/python/extract.hpp>
|
|
|
|
-#include <memory>
|
|
#include <map>
|
|
|
|
#include <boost/function/function3.hpp>
|
|
@@ -36,6 +35,9 @@
|
|
|
|
#include <boost/serialization/split_free.hpp>
|
|
#include <boost/serialization/array.hpp>
|
|
+#include <boost/serialization/array_wrapper.hpp>
|
|
+
|
|
+#include <boost/smart_ptr/scoped_array.hpp>
|
|
|
|
#include <boost/assert.hpp>
|
|
|
|
@@ -441,7 +443,7 @@ load_impl(Archiver& ar, boost::python::o
|
|
int len;
|
|
ar >> len;
|
|
|
|
- std::auto_ptr<char> string(new char[len]);
|
|
+ boost::scoped_array<char> string(new char[len]);
|
|
ar >> boost::serialization::make_array(string.get(), len);
|
|
boost::python::str py_string(string.get(), len);
|
|
obj = boost::python::pickle::loads(py_string);
|
|
Index: boost_1_64_0/boost/mpi/detail/mpi_datatype_primitive.hpp
|
|
===================================================================
|
|
--- boost_1_64_0.orig/boost/mpi/detail/mpi_datatype_primitive.hpp
|
|
+++ boost_1_64_0/boost/mpi/detail/mpi_datatype_primitive.hpp
|
|
@@ -25,7 +25,6 @@ namespace std{
|
|
#include <boost/assert.hpp>
|
|
#include <boost/mpl/placeholders.hpp>
|
|
#include <boost/serialization/array.hpp>
|
|
-#include <boost/serialization/detail/get_data.hpp>
|
|
#include <stdexcept>
|
|
#include <iostream>
|
|
#include <vector>
|
|
@@ -80,18 +79,18 @@ public:
|
|
BOOST_MPI_CHECK_RESULT(MPI_Type_create_struct,
|
|
(
|
|
addresses.size(),
|
|
- boost::serialization::detail::get_data(lengths),
|
|
- boost::serialization::detail::get_data(addresses),
|
|
- boost::serialization::detail::get_data(types),
|
|
+ get_data(lengths),
|
|
+ get_data(addresses),
|
|
+ get_data(types),
|
|
&datatype_
|
|
));
|
|
#else
|
|
BOOST_MPI_CHECK_RESULT(MPI_Type_struct,
|
|
(
|
|
addresses.size(),
|
|
- boost::serialization::detail::get_data(lengths),
|
|
- boost::serialization::detail::get_data(addresses),
|
|
- boost::serialization::detail::get_data(types),
|
|
+ get_data(lengths),
|
|
+ get_data(addresses),
|
|
+ get_data(types),
|
|
&datatype_
|
|
));
|
|
#endif
|
|
@@ -129,6 +128,12 @@ private:
|
|
lengths.push_back(l);
|
|
}
|
|
|
|
+ template <class T>
|
|
+ static T* get_data(std::vector<T>& v)
|
|
+ {
|
|
+ return v.empty() ? 0 : &(v[0]);
|
|
+ }
|
|
+
|
|
std::vector<MPI_Aint> addresses;
|
|
std::vector<MPI_Datatype> types;
|
|
std::vector<int> lengths;
|
|
Index: boost_1_64_0/boost/mpi/detail/packed_iprimitive.hpp
|
|
===================================================================
|
|
--- boost_1_64_0.orig/boost/mpi/detail/packed_iprimitive.hpp
|
|
+++ boost_1_64_0/boost/mpi/detail/packed_iprimitive.hpp
|
|
@@ -16,7 +16,6 @@
|
|
#include <boost/mpi/exception.hpp>
|
|
#include <boost/assert.hpp>
|
|
#include <boost/serialization/array.hpp>
|
|
-#include <boost/serialization/detail/get_data.hpp>
|
|
#include <vector>
|
|
#include <boost/mpi/allocator.hpp>
|
|
|
|
@@ -104,7 +103,12 @@ private:
|
|
void load_impl(void * p, MPI_Datatype t, int l)
|
|
{
|
|
BOOST_MPI_CHECK_RESULT(MPI_Unpack,
|
|
- (const_cast<char*>(boost::serialization::detail::get_data(buffer_)), buffer_.size(), &position, p, l, t, comm));
|
|
+ (get_data(buffer_), buffer_.size(), &position, p, l, t, comm));
|
|
+ }
|
|
+
|
|
+ static buffer_type::value_type* get_data(buffer_type& b)
|
|
+ {
|
|
+ return b.empty() ? 0 : &(b[0]);
|
|
}
|
|
|
|
buffer_type & buffer_;
|
|
Index: boost_1_64_0/boost/mpi/detail/packed_oprimitive.hpp
|
|
===================================================================
|
|
--- boost_1_64_0.orig/boost/mpi/detail/packed_oprimitive.hpp
|
|
+++ boost_1_64_0/boost/mpi/detail/packed_oprimitive.hpp
|
|
@@ -15,7 +15,6 @@
|
|
|
|
#include <boost/mpi/datatype.hpp>
|
|
#include <boost/mpi/exception.hpp>
|
|
-#include <boost/serialization/detail/get_data.hpp>
|
|
#include <boost/serialization/array.hpp>
|
|
#include <boost/assert.hpp>
|
|
#include <vector>
|
|
@@ -98,13 +97,18 @@ private:
|
|
|
|
// pack the data into the buffer
|
|
BOOST_MPI_CHECK_RESULT(MPI_Pack,
|
|
- (const_cast<void*>(p), l, t, boost::serialization::detail::get_data(buffer_), buffer_.size(), &position, comm));
|
|
+ (const_cast<void*>(p), l, t, get_data(buffer_), buffer_.size(), &position, comm));
|
|
// reduce the buffer size if needed
|
|
BOOST_ASSERT(std::size_t(position) <= buffer_.size());
|
|
if (std::size_t(position) < buffer_.size())
|
|
buffer_.resize(position);
|
|
}
|
|
|
|
+ static buffer_type::value_type* get_data(buffer_type& b)
|
|
+ {
|
|
+ return b.empty() ? 0 : &(b[0]);
|
|
+ }
|
|
+
|
|
buffer_type& buffer_;
|
|
mutable std::size_t size_;
|
|
MPI_Comm comm;
|
|
Index: boost_1_64_0/boost/mpi/communicator.hpp
|
|
===================================================================
|
|
--- boost_1_64_0.orig/boost/mpi/communicator.hpp
|
|
+++ boost_1_64_0/boost/mpi/communicator.hpp
|
|
@@ -850,7 +850,7 @@ class BOOST_MPI_DECL communicator
|
|
optional<graph_communicator> as_graph_communicator() const;
|
|
|
|
/**
|
|
- * Determines whether this communicator has a Cartesian topology.
|
|
+ * Determines whether this communicator has a Graph topology.
|
|
*/
|
|
bool has_cartesian_topology() const;
|
|
|