Boost compatibility/communication issue with 1.47 to 1.7
Hello All, So far we have used Boost 1.47 VS2010 built binaries integrated with our VS2010 Code Base . But now we are upgrading VS2010 to VS2017 of our product code base, also we tried Boost 1.70 boost built using VS2017 and integrated with our VS2017 code base. Our product should be compatible with older versions of all tools including boost. We have not faced any issues except boost. Issue: 1.7 boost is not able to communicate to 1.47 boost and giving "SERIALIZATION ERRORS". 1.47 boost is not able to communicate with 1.7 boost and giving "SERIALIZATION ERRORS". Please help us and let us know which boost version we could upgrade that can be compatible with 1.47. Note: The customer is already using 1.47 2010 boost binaries with built VS2010 product which we can't change. Please suggest us the resolution or the version that we should use. Thanks, Sarath.
On Tue, 2 Jul 2019 at 09:16, nunna, sarath babu (GE Healthcare) via Boost < boost@lists.boost.org> wrote:
Hello All,
So far we have used Boost 1.47 VS2010 built binaries integrated with our VS2010 Code Base . But now we are upgrading VS2010 to VS2017 of our product code base, also we tried Boost 1.70 boost built using VS2017 and integrated with our VS2017 code base.
Our product should be compatible with older versions of all tools including boost. We have not faced any issues except boost.
Issue: 1.7 boost is not able to communicate to 1.47 boost and giving "SERIALIZATION ERRORS". 1.47 boost is not able to communicate with 1.7 boost and giving "SERIALIZATION ERRORS".
Please help us and let us know which boost version we could upgrade that can be compatible with 1.47.
Note: The customer is already using 1.47 2010 boost binaries with built VS2010 product which we can't change. Please suggest us the resolution or the version that we should use.
According to this https://www.boost.org/doc/libs/1_70_0/libs/serialization/doc/release.html , there should not be any issues, so you probably need to be a bit more specific about what "xxx boost is not able to communicate to yyy" means in terms of error-message(s). This assumes the serialization was done with boost-1.47 (as you can read that 1.42-1.44 have issues, i.e. bug(s)). But, as a fix/work-around, what about de-serializing [the data you have] with 1.47 and re-serializing with 1.70? degski -- @realdegski https://edition.cnn.com/interactive/2019/06/middleeast/saudi-teen-death-pena... "Anyone who believes that exponential growth can go on forever in a finite world is either a madman or an economist" - Kenneth E. Boulding
On 7/2/19 3:36 AM, degski via Boost wrote: Honestly there isn't enough data in the complain to be able to offer much help.
But, as a fix/work-around, what about de-serializing [the data you have] with 1.47 and re-serializing with 1.70?
this is quite interesting when one thinks about it. I've often considered suggesting when people have problems but it has never come to that. But thinking about I wonder: I make a small program which a) deserializes a archive to memory using code from 1.47 b) serializes to a new archive using code from 1.70. Sound good. But ... When I build/link this code to two different libraries I would expect some conflicts to arise. Working around this has some possibilities (eg. using separatly loaded DLLS) but it seems that they would be quite complicated in practice.
degski
On Tue, 2 Jul 2019 at 21:24, Robert Ramey via Boost
I make a small program which
a) deserializes a archive to memory using code from 1.47 b) serializes to a new archive using code from 1.70.
You could also simply make 2 executables [that's what I had in mind], a decoder-1.47 and an encoder-1.70, for enhanced entertainment, one could use Boost.InterProcess and do it on the fly. But the simplest would obviously be to just write the stuff to disk [or a mmap-ped file]. degski -- @realdegski https://edition.cnn.com/interactive/2019/06/middleeast/saudi-teen-death-pena... "Anyone who believes that exponential growth can go on forever in a finite world is either a madman or an economist" - Kenneth E. Boulding
On Tue, Jul 2, 2019 at 2:15 AM nunna, sarath babu (GE Healthcare) via
Boost
Hello All,
So far we have used Boost 1.47 VS2010 built binaries integrated with our VS2010 Code Base . But now we are upgrading VS2010 to VS2017 of our product code base, also we tried Boost 1.70 boost built using VS2017 and integrated with our VS2017 code base.
Our product should be compatible with older versions of all tools including boost. We have not faced any issues except boost.
Issue: 1.7 boost is not able to communicate to 1.47 boost and giving "SERIALIZATION ERRORS". 1.47 boost is not able to communicate with 1.7 boost and giving "SERIALIZATION ERRORS".
Please help us and let us know which boost version we could upgrade that can be compatible with 1.47.
Note: The customer is already using 1.47 2010 boost binaries with built VS2010 product which we can't change. Please suggest us the resolution or the version that we should use.
So you are certain there are no changes to the structures being serialized between the two versions? For example if your 1.47 was 32-bit and your 1.70 is 64-bit, I wonder if that makes a difference. Perhaps you should dump out the raw bytes of a structure serialized by 1.47 and then the raw bytes of the same structure serialized by 1.70 and then figure out the difference between the two, and that may lead you to an answer. Perhaps you could change the serialization format to something else temporarily for this test, like the xml serializer, so you can better understand what the difference is, or if the problem is limited to the binary serialization format. Then you will be closer to the root cause of the issue. - Jim
participants (4)
-
degski
-
James E. King III
-
nunna, sarath babu (GE Healthcare)
-
Robert Ramey