
On 15 May 2010, at 18:40, Isidor Zeuner wrote:
You can still provide binaries for certain distributions. For instance, Ubuntu-8.04 comes with boost-1.34 and libstdc++.so.6. That won't change.
I think this is the best direction for solving the ABI compatibility issue. Why should a library vendor bother? The library vendor would sacrifice code quality if he strives for binary compatibility. A distributor, however, can decide to make binary compatibility priority, and keep the same boost version for a long time.
So, if I need long-lasting binary compatibility, I can buy RHEL and be sure everything remains stable. But the developers of all the bundled software don't need to bother.
There is one big difference between libstdc++ and boost.
libstdc++ fixes bugs in old versions, while keeping the ABI fixed. boost makes almost no attempt to apply bug fixes to old versions.
libstdc++ has to, because it is bound to implementing well-defined requirements. Boost wants to explore how to get the most out of C++, which naturally goes with a more progressive strategy. Once boost components get standardized, compiler vendors will run for them to carve them out of stone anyway.
I'm not claiming it should, but saying that a distributor can deal with keeping everything stable is unreasonable, unless you expect RHEL to keep their own boost distribution, where they backport bug fixes.
Well, this backport-instead-of-upgrade policy is pretty much the reason why people buy RHEL. Almost 5 years of boost-1.33.1 don't come without a reason. Best regards, Isidor