Boost logo

Boost :

Subject: Re: [boost] [serialization] failing MPI build
From: Robert Ramey (ramey_at_[hidden])
Date: 2015-04-15 11:42:38


Alain Miniussi wrote
>>> I guess I need to remove some int arguments from the
>>> (save|load)_override methods of boost::mpi::packed_(i|o)archive classes
>>> ?
>>
>> You are correct. It's easy to see the changes. If you do a diff on some
>> other archive like binary or text in the serialization library you'll see
>> that the dummy parameter used to emulate partial function template
>> overload
>> has been eliminated. And of course eliminate the #include
>> boost/serialization/ptfo.hpp . That's all that is necessary. This
>> simplifies code at the cost of eliminating support of borland 5x and mdvc
>> 7.0 and below which is no longer considered necessary. Since these
>> headers
>> are considered implementation features of the serialization library it
>> didn't occur to me that making these changes would break anything else.
>> Sorry about that.
>
> I am relatively new to that part of Boost.MPI so I cannot tell if these
> features should have been used in boost mpi in the first place.

These features were copied from the archive implementations included
in the serialization library. Their function was to support compilers which
are
obsolete. For this reason they were eliminated from the serialization
library
and should be eliminated from MPI version as well. These changes did not
cause any test failures in the serialization library nor require any changes
in any tests to pass.

One experiment would be to "resurrect" the ptfo.hpp file from github
and re-run the tests. If the tests pass then we know that it's because
ptfo.hpp was removed. Otherwise it would be due to some other change.

> If you're interested in enhancing, or improving the MPI implementation as
> it
> regards serialization, you should let me know so I could acquaint myself
> with the MPI version and offer some suggestions. I've had some ideas in
> my
> head for years would simplify and expedite usage of the serialization
> library for object transmission over a stream but I've never spend any
> time
> on them as it didn't seem anyone had any interest.

I started doing some modifications that I will put on a branch on github.
Right now, with those modifications the develop version of Boost.MPI
compiles again with the develop version of serialization. But I still
have some runtime failures so I'd like to fix those before going to
github develop.

The failure have to do with serialization of "complex" stl data
structure (stl collections of non PODs). I suspect it has something to
do with binary serialization optimisation (where non POD are considered
POD).

Removal of pfto support entails changing signatures of some save/load
functions which could easily manifest itself in the problems you're having.
Double check for save/load functions with "extra" arguments.

Robert Ramey

--
View this message in context: http://boost.2283326.n4.nabble.com/serialization-failing-MPI-build-tp4674375p4674493.html
Sent from the Boost - Dev mailing list archive at Nabble.com.

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