
On Mon, Jul 7, 2025 at 4:00 PM Daniele Lupo via Boost <boost@lists.boost.org> wrote:
On 07/07/2025 14:45, Artyom Beilis via Boost wrote:
Boost breaking compatibility is the Achilles heel of Boost since I remember it (around 1.33) and it had never changed. It makes Boost highly problematic - almost irrelevant for any long term C++ project that needs to run over a large range of platforms that provide its own Boost. More than that, Boost is almost impossible to use in libraries or other interfaces because of breaking API/ABI virtually in any situation.
I've said this many times. This should not be an issue. Every library at some point breaks with the past and go ahead, for many reason, maintanance, readability etc... And for that reason we also have the X.Y.Z version numbering where
True but Boost have never followed this. The major version = 1.XX and rest are never handled. What would be the correct solution is something like Boost.LTS 2. That would carry API and ABI stable for years to come and release minor updates and anything that breaks goes to next version till it is released after YEARS not few months. And the rest of the updates are backward API/ABI compatible. It is very hard to use Boost in any large scale project without something like that. Most large C++ libraries manage it. Don't see why Boost Can't/ Maybe there should be a Core Boost functionality that stabilized and maintained this way. I remember back in the days when I started CppCMS Boost was a huge headache and I needed to create a stable fork of some highly needed libraries to keep the API/ABI stable. But anyhow Boost to me had become a playground of some cool ideas that some of them become legend (shared_ptr, regex, etc) It Bootstrapped C++11 but for long term projects Boost nowadays isn't very useful. Artyom