
those who are always caught in a "should we fix this bug? it makes applications break, but fixing it would break the ABI" dilemma.
ABI compatibility should not prevent fixing bugs. This is important point. In fact libstdc++ manages its ABI for 6 years successfully, Qt does this very well too. However you need to be prepared. You generally need at least one d-pointer/opaque-pointer/pimpl. You need to separate implementation and definitions (it would also increase compilation time, and reduce code size). Only bugs you can't fix are deep design issues. I don't see it as problem. Take a look on Boost.Locale source code I had written. Almost all non-trivial code put into C++ source files. Every non-trivial class has pimpl pointer allowing me to make changes quite easily and so on.
I need updating strategies for large deployments of binary modules which are a bit more granular than "upgrade boost, then recompile everything".
Exactly, this one of very important issues that ABI stability would solve. Artyom