Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2022-01-31 16:59:43


We have an issue, https://github.com/boostorg/boost/issues/610, that
points out that the "Primary test compilers" section in the Boost 1.78
release notes is misleading, because it doesn't actually reflect whether
a Boost library works with a specific compiler or not.

The specific example cited is Multiprecision. The release notes say that
on Linux, the following C++11 GCC compilers are "primary":

GCC, C++11: 4.7.3, 4.8.5, 11

However, Multiprecision doesn't work with GCC 4.7.3 or 4.8.5, and likely
never will, because these compilers do not actually implement the C++11
standard. (They don't implement reference qualified member functions
and don't have a conforming <type_traits> header.)

It would be better for everyone involved if the primary test compilers
are somewhat aligned with (a) what Boost libraries actually support or
require, and (b) what Boost libraries actually test with.

The section historically lists what's in our test matrix, but nowadays most
libraries depend on CI for testing, specifically on Github Actions (after the
untimely death of open source Travis) and Appveyor.

There's a fair bit of discussion in the linked issue above, but what I think
is reasonable to list as primary test compilers as far as GCC is concerned
is something like

C++03: 4.8, 4.9, 5
C++11: 4.8(*), 4.9(*), 5

I would start with 4.8, because this is what GHA has on its 18.04 image.

C++03 needs to have GCC up to 5 because this is the default -std level
for these versions (GCC 6 is -std=c++14 by default), and the system-
provided Boost is compiled with the default.

4.8 has enough of C++11 so it's possible for C++11 libraries to support it
without much heroics, but we could go either way on this one, hence the
asterisk.


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