[serialization] Back Versioning issue
We want to use boost::serialization with boost::asio in one of our software, but we have a critical issue which prevents our further work. It refers to the "Back Versioning" known problem in TODO section: "It has been suggested that a useful feature of the library would be the ability to create "older versions" of archives. Currently, the library permits one to make programs that are guaranteed the ability to load archives with classes of a previous version. But there is no way to save classes in accordance with a previous version. At first I dismissed this as a huge project with small demand. A cursory examination of the code revealed that this would not be very difficult. It would require some small changes in code and some additional tests. Also it would require special treatment in the documentation - perhaps a case study. " *We want to ask what is status of this issue and can we expect to fix this in near future.* This is a networking project, our program compiled with e.g. boost 1.62 or some future version must create archives that can be (sent over the network and then) read on the program compiled with older version like 1.57 for example (as now available by default of Windows/cygwin). We would hope that we can do something like; Archive ar; ar.set_compatibility_boost_version(1, 55); ar << ... We would also need to backport the patch to older version of boost archive, so they also can write archives readable by (even older) versions. In the end we expect to run machines with: boost 1.55 (plus patch to set compatibility) boost 1.57 (plus patch to set compatibility) boost 1.58 (plus patch to set compatibility) boost 1.62 (perhaps by default with the set compatibility option) and each of this computers needs to write archive readable by all other versions (set they would all set compatibility to lowest common version). Without this functionality we can not use boost archive in this project. We would like to help you test/backport this fix and perhaps even try to code it, although we do not yet have any experience in writing code for boost library itself. Can we expect this functionality to be written in e.g. this year? Best regards
On 3/2/16 3:51 AM, Janusz Zradomia wrote:
*We want to ask what is status of this issue and can we expect to fix this in near future.* May I presume there's missing "?" above?
We would hope that we can do something like; Archive ar; ar.set_compatibility_boost_version(1, 55); ar << ...
We would also need to backport the patch to older version of boost archive, so they also can write archives readable by (even older) versions.
In the end we expect to run machines with: boost 1.55 (plus patch to set compatibility) boost 1.57 (plus patch to set compatibility) boost 1.58 (plus patch to set compatibility) boost 1.62 (perhaps by default with the set compatibility option)
and each of this computers needs to write archive readable by all other versions (set they would all set compatibility to lowest common version).
Without this functionality we can not use boost archive in this project.
I would not expect boost serialization to ever provide this functionality. It would required a large investment to implement.
would like to help you test/backport this fix and perhaps even try to code it, although we do not yet have any experience in writing code for boost library itself.
Can we expect this functionality to be written in e.g. this year?
No. Robert Ramey
participants (2)
-
Janusz Zradomia
-
Robert Ramey