On Thu, 2020-02-13 at 00:49 +0000, Modi Mo wrote: > Hey all, > > I'm picking this work up from Andrew. Last time it was decided that > the timing wasn't right to upgrade the minimum version to C++11. Is > the timing better now to get this change through? > > I've attached the patch Andrew prepared. Can I get feedback on the > change and some help testing on the broader range of > architectures/platforms? > > Thanks, > Modi
Hi Modi Thanks for the patch. Some nitpicks: Timing-wise, the GCC developer community is focusing on gcc 10 bugfixing right now (aka "stage 4" of the release cycle). So this patch won't be suitable to commit to master until stage 1 of the release cycle for gcc 11 (in April, hopefully). But yes, it's probably a good idea to get feedback on the patch given the breadth of platforms we support. The patch will need an update to the docs; search for "Tools/packages necessary for building GCC" in gcc/doc/install.texi, which currently has some paragraphs labelled: @item ISO C++98 compiler that will need changing. I think Richi mentioned that the minimum gcc version should be 4.8.2 as he recalled issues with .1, so maybe the error message and docs should reflect that? https://gcc.gnu.org/ml/gcc/2019-10/msg00180.html This may be opening a can of worms that should wait until we're done with the GCC 10 release, but there's probably an eventual wider discussion about what parts of C++11 we should use; pragmatically we're also limited by gengtype, the tool that scrapes the source code looking for garbage-collector markup, as that imposes a subset of C++ on us. I'd love to be able to rely on move semantics and thus use e.g. std::unique_ptr to capture more of our memory-management in the type system (we currently have a limited C++98-compatible implementation in the tree in the form of gnu::unique_ptr). How much of the stdlib do we see ourselves using? I think we've avoided std::string and the <<-style stream APIs; is there a case for using some of the other data structures? For reference, see https://gcc.gnu.org/codingconventions.html#Cxx_Conventions (looks like that page would need an update also for the version bump; it's in the website git repo IIRC) Hope this is constructive. Dave