This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
C++11 bootstrap (was: GCC selftest improvements)
- From: Jason Merrill <jason at redhat dot com>
- To: Modi Mo <modimo at microsoft dot com>
- Cc: Nicholas Krause <xerofoify at gmail dot com>, David Malcolm <dmalcolm at redhat dot com>, Eric Gallager <egall at gwmail dot gwu dot edu>, Pedro Alves <pedro at palves dot net>, Gabriel Dos Reis <gdr at microsoft dot com>, Andrew Dean <Andrew dot Dean at microsoft dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, "ro at CeBiTec dot Uni-Bielefeld dot DE" <ro at cebitec dot uni-bielefeld dot de>, "mikestump at comcast dot net" <mikestump at comcast dot net>, "law at redhat dot com" <law at redhat dot com>, Jonathan Wakely <cxx at kayari dot org>, Richard Biener <richard dot guenther at gmail dot com>
- Date: Fri, 14 Feb 2020 15:54:42 +0100
- Subject: C++11 bootstrap (was: GCC selftest improvements)
- References: <CO2PR00MB01197C9432A2E02C6F1692F1EA6A0@CO2PR00MB0119.namprd00.prod.outlook.com> <d16fabaf83d56495ce27f1ef5ca413247c29c24f.camel@redhat.com> <BN3PR00MB0116141705F4EA4B22045A19EA650@BN3PR00MB0116.namprd00.prod.outlook.com> <BL0PR2101MB10099E3DB7EB62603AFE4F21B0640@BL0PR2101MB1009.namprd21.prod.outlook.com> <CAMfHzOumpVVf1YV6rZZjGzpp-s5g36GntCgnq8vRY943sdnDbA@mail.gmail.com> <2f583ca8-56ea-460f-bcaf-c70108451aa8@palves.net> <CAMfHzOtq1jWAYkN+8dYdLO7m+en=dWHoy-pbOLb+y+U4VVf65w@mail.gmail.com> <BY5PR21MB1508B42DE689B3B23E0DC162CC1A0@BY5PR21MB1508.namprd21.prod.outlook.com> <f16e388e107d2da1970ecc0226c4cf3d6d9502ed.camel@redhat.com> <ebe935b0-cb1f-c071-1141-2f28db15332a@gmail.com> <BY5PR21MB1508456D794E4656F3329867CC1A0@BY5PR21MB1508.namprd21.prod.outlook.com>
On Thu, Feb 13, 2020 at 11:18 PM Modi Mo <modimo@microsoft.com> wrote:
>
> > On 2/12/20 8:53 PM, David Malcolm wrote:
> > > 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).
> > >
>
> Ah I should've looked a bit harder for timelines before asking https://gcc.gnu.org/develop.html. Appreciate the response here!
>
> > > 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
> > >
>
> Segher here suggests 4.8.5 instead of 4.8.2:
> https://gcc.gnu.org/ml/gcc/2019-11/msg00192.html
>
> Looking at release dates 4.8.5 was in June 2015 while 4.8.2 in October 2013 which is a pretty big gap. I'd for moving the needle as far as we reasonably can since this is a leap anyways. @Segher do you have a reason in mind for the higher versioning?
> > > 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
> > >
> > > Hope this is constructive.
> > > Dave
> > Dave,
> >
> > I recall originally bringing up the move. From memory I recall that these were
> > the features we wanted or the people in the discussion wanted from C++11:
> > 1. Better Rounding and Stricter Integer and other number type rules 2. Template
> > Aliasing 3. Auto and for each style loops 4. Move and R Value Semantics
> >
>
> Agreed on these features. I really like having access to 'for (const auto & foo : bar)'
> > There was a little discussion about lambas and anonymous functions but I don't
> > recall that being clear in terms of one of the above areas for sure.
For information, bootstrap with 4.8.5 -std=gnu++11 works now with no
other changes. It seems the only other changes needed will be to
documentation.
Jason