From: Neal D. Becker (ndbecker2_at_[hidden])
Date: 2004-07-14 10:28:50


Klaus Nowikow wrote:

> My company is currently developing a new set of software packages
> (applications, static and dynamic libraries) that are all expected
> to work together (i.e., the libraries will be linked to more than
> one of the applications, and the libraries will interoperate and depend
> on one another).
> In addition, the system has to be extensible, i.e. new DLLs will be added
> in the future without requiring to rebuild the other components.
>
> I use many parts of the boost libraries, not only for the implementation
> details, but also in the interfaces of the libraries (e.g. the iterator
> adaptors, type_traits, call_traits, variant, mpl...).
>
> This leads to the question: are different versions of the boost
> libraries compatible with each other? Can I use a newer version of boost
> in future additions to our system and expect them to work together or will
> we have to rebuild the whole system when we decide to use a new version
> of boost?
>
> I don't expect a definite answer to this complex question, but is it
> possible to estimate how likely it is that newer versions of boost
> will require us to rebuild all?
>

The track record here is not very good. For example the last 2 releases
IIRC both broke boost::random source compatibility. In one case it was not
even mentioned in the release notes. The behavior silently changed,
yielding different numerical results (no compile errors).