Boost logo

Boost :

From: Daniele Lupo (jepessen_at_[hidden])
Date: 2024-04-02 10:46:12


> And kill projects that target older C++03 platforms?
> Don't maintain, update or improve, but remove?
>
> If somebody wants some smart pointer that is consistent across
> compiler versions that boost ones are a very good case.
>
> Be responsible to ones who use your code. Don't break it unless
> it is absolutely necessary

In my opinion, yes.

Let's start from a point: nobody wil kill C++03 code on older platforms
and with older compilers: it will continue to work properly with
existing boost versions. Simply, the old code will not be able to use,
at some point, the latest boost version, and that's also ok, since new
boost releases will use code more modern than C++03, so simply upgrading
the library will break the old code.

My idea, as I've said, is to deprecate old libraries at some point,
remove them later in a future version, and maintain old boost version
for bugfixing. It's something that many other libraries do. At some
point, for avoiding the boilerplate of the library/framework, some
deprecated features must be removed, and there will be some API break.
Even C++ did it with auto_ptr, for example, why boost should not do it?
Why boost should rely to a bunch of configuration macros for writing and
maintaining code that can be developed in a much cleaner way?

More important, Boost already did it: in version 1.31 Compose library
was deprecated, and in 1.32 was removed. Single libraries had breaking
changes during their history, like Spirit. I'm simply saying that for
maintaining the code, and making development of new libraries easier we
should start to think about cleaning the actual code base a bit. But
it's something that every project must do, at same point.

And I will repeat again, this does not imply that old code will break.
Simply old code, developed with a specific version of boost, cannot be
compiled with a more recent version of it. It the developer find some
boost bug, it's always possible to create a patch release, if the boost
version that it uses is more recent than the last supported one in my
proposal. If your code uses a really old boost version, maybe it's not
possible to upgrade to last version for free, but it happens also for
all other libraries, and for compilers too.

So I don't think that with this we'll break code, and I've said clearly
that smart pointers were only an example and not a real candidate for a
library that needs to be removed, this is something that the community
should decide.

But I'm convinced that sooner or later this work should be done, and in
my experience sooner is better than later.

Regards

Daniele Lupo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk