Re: [Boost-bugs] [Boost C++ Libraries] #4660: Error read binary archive, created by old boost version

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4660: Error read binary archive, created by old boost version
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-11-09 20:43:23

#4660: Error read binary archive, created by old boost version
  Reporter: serge-voropaev@… | Owner: ramey
      Type: Bugs | Status: reopened
 Milestone: Boost 1.45.0 | Component: serialization
   Version: Boost 1.45.0 | Severity: Problem
Resolution: | Keywords:

Comment (by ramey):

 I think I've answered these questions previously in the thread. Here is a

 a) This is a tricky problem to solve - it's it's solvable at all. I know
 this for a fact as I spent significant time trying to solve it and
 actually made things worse. Juast pasting in someone's patch might fix
 their problem but I can't know that ti will not break something else.

 b) What the serialization library needs is a comprehensive set of tests to
 verify loading of archives produced by previous versions. This is a large
 effort which no one has resources to undertake.

 c) If you want to move to a more recent of boost and preserve the data in
 one's previously written archives, I would recommend the following:

 i) Under your current version of boost, create a small program which reads
 your binary archive and write a text (or portable binary archive). ii)
 upgrade to a more recent version of boost iii) leave the archives as text
 or portable binary archive or make small program as in i) above which
 reads the portable and writes the (non-portable)binary ones.

 In the future, I will be much, much more careful about making changes to
 the binary_archive. If someone want's to commit resources to making a test
 suite to guarantee future binary portability, I would be willing to review
 it. That would likely be much less effort than making your own binary

 Note that this problem could occur even if I had never made a mistake. An
 upgrade to 64 bit compiler from a 32 bit could present the exact same
 situation. The problem really has it's root in usage of the binary
 archive. This is indeed useful for MPI and applications like that, as it's
 the fastest - but it is the fastest at the expense of coupling the format
 to a specific machine architecture - not a great idea for permanent data

 I do regret any inconvenience that my previous mistakes have caused, but
 this only makes less reluctant to commit changes without a lot of thought.
 Probably the most time I spend is finding problems cause by checkins by
 other people who don't really appreciate all that is involved in a library
 like this. Sometimes these changes get checked in even without being

 Robert Ramey

Ticket URL: <>
Boost C++ Libraries <>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:14 UTC