|
Boost : |
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2023-02-04 12:46:52
On 2/4/23 15:08, Peter Dimov via Boost wrote:
> Greetings,
>
> I have a novel idea, let's drop C++03 support.
>
> The reasons to do that have been explicated already
> a number of times, e.g. in
>
> https://pdimov.github.io/articles/phasing_out_cxx03.html#_ongoing_costs_of_maintaining_c03_support
>
> but in brief:
>
> * C++03 is 20 years old.
> * A number of intra-Boost dependencies can be
> eliminated by using the standard equivalent of
> Boost components. This will help Boost to become
> "more modular".
> * Variadic templates allow us to remove the uses
> of Preprocessor and MPL, which are the primary
> contributor to slow Boost compilation times.
> * Almost no new C++03 development occurs in
> Boost at this point, so C++03 users do not need
> to upgrade their Boost.
>
> To that end, I propose the following:
>
> Boost release 1.82.0 is announced as the last one
> with C++03 support. If critical problems are found
> in it post-release, we will issue 1.82.1, 1.82.2 and
> so on, as appropriate (as C++03 users will not be
> able to just upgrade to 1.83.)
For this to be possible, a separate set of branches need to be created
for each library and the superproject. Possibly, CI scripts needs to be
updated to test the new branches.
Also, I suggest we name the first Boost version that requires C++11 as
Boost 2.0 and the C++03-compatible releases continue to be 1.x. The
compiled binaries for 2.x should be named differently from 1.x, i.e. add
a new tag in 2.x binaries. This will make it easier for downstream
consumers to ship 2.x and 1.x releases side by side, should it be
needed. Point releases may not be convenient for downstream since, for
example, Debian dev packages for Boost are named as
libboost-math1.74-dev (no point version).
> Boost release 1.83.0 is announced to require C++11
> at minimum. This means compilers that have all the
> C++11 standard headers, and support all the C++11
> syntactic constructs and keywords without issuing
> errors. (E.g. VS2013 doesn't qualify because it doesn't
> support the `constexpr` or `noexcept` keywords.)
For gcc, the minimum version would be 4.8.1:
https://gcc.gnu.org/projects/cxx-status.html#cxx11
For clang, it's 3.3:
https://clang.llvm.org/cxx_status.html#cxx11
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk