On 10/25/19 6:01 PM, Gabriel Dos Reis wrote: > [Andrew] > > | > GCC has some rather unique requirements, in that we support a great many > | > build configurations, some of which are rather primitive - for example, > | > requiring just C++98 with exceptions disabled, in that we want to be able > to > | be > | > bootstrappable on relatively "ancient" configurations. > | > IIRC auto-registration of tests requires that the build configuration > have a > | > sufficiently sane implementation of C++ - having globals with non-trivial > | ctors > | > tends to be problematic when dealing with early implementations of C++. > | > | Is C++98 the limit of what we can use in GCC? If so, that immediately > | eliminates Catchv1 (C++03), Catch2 (C++11+) and GTest (C++11) > > C++98 was what Diego, Lawrence, Benjamin, Ian, and myself could agreed to > back in 2011-2012 when C++11 got just out as a C++ standard, so we couldn't > pick C++11 as we didn't have enough G++ out there to count on. > > I would expect the situation to have drastically changed - with very handy > and popular features such as 'constexpr' (especially with the C++14 > relaxation), lambdas and range-for. > > Jason, Jonathan - is the situation on the terrain really that dire that C++11 > (or C++14) isn't at all available for platforms that GCC is bootstrapped from? The argument that I'd make is that's relatively uncommon (I know, I know AIX) that bootstrapping in those environments may well require first building something like gcc-9.
I'd really like to see us move to C++11 or beyond. Sadly, I don't think we have any good mechanism for making this kind of technical decision when there isn't consensus. jeff