On Sat, Jun 11, 2011 at 4:00 PM, Robert Ramey
You're not overdramatizing at all. In fact, it's just the opposite - you're UNDERdramatizing. The serialization library used the original boost exception functionality. This original functionality was such that it handled the case where the compiler didn't support (or the environment didn't want to support) normal C++ exceptions. This is common in things like embedded systems. All of a sudden, the symantics of the boost excpetion changed.
The change doesn't break anything that wasn't already broken under the old semantics. In fact the change uncovered several bugs in Boost libraries not meeting the original requirements of boost::throw_exception.
This made available new functionality which no current libraries used
You're missing the point. Even if a Boost library, say Serialization, doesn't use the functionality of Boost Exception, the users of Boost Serialization could still use it. Your argument boils down to "I don't care if anyone needs to transport Serialization exceptions to another thread. Tough!"
and added many lines of header source to every module which used it.
About 400 lines. That code enables (does not implement) the functionality of Boost Exception. There is no way for anyone to make use of Boost Exception without that code.
It also broke any libraries built without RTTI - another valid case.
That was fixed long ago.
I complained about this at the time but I couldn't get any traction. I would have had no objection if the new exception had been an option - but it's invaded everything - I just used the thread library, and had a problem because of it.
Please do report problems you have. Emil Dotchevski Reverge Studios, Inc. http://www.revergestudios.com/reblog/index.php?n=ReCode