[cfe-dev] RFC: A proposal to move toward using C++11 features in LLVM & Clang / bounding support for old host compilers

Brooks Davis brooks at freebsd.org
Mon Oct 28 15:12:14 PDT 2013


On Mon, Oct 28, 2013 at 02:31:10PM -0700, Chris Lattner wrote:
> 
> On Oct 28, 2013, at 2:19 PM, Chandler Carruth <chandlerc at google.com> wrote:
> 
> > One thing I want to call out:
> > 
> > On Mon, Oct 28, 2013 at 8:20 AM, Chris Lattner <clattner at apple.com> wrote:
> > I suppose what I'm saying is that we are currently not using *any* C++'11 features.  It seems like conservatively great progress for LLVM 3.4 to bump the minimum GCC requirement up to enable use of VC 2010-era features (like rvalue refs and simple stdlib features),
> > 
> > I am strongly opposed to this. Currently, we have people that are relying on our C++98 status. This isn't actually about VC2010 issues, this is about GCC support. I think it would be a disservice to change that in 3.4, only a small number of weeks away from the branch point. That seems like very little notice.
> 
> Yes, good point.  A more logical one would be to go for 3.5/3.6 for "VC2010" and "VC2012" feature adoption.

FWIW, I thought the agreement when this came up previously was that 3.4
could include C++11 features.  Delaying one more might help FreeBSD a
bit, but we've been planning as though 3.4 would break the ability to
build on gcc 4.2.

> > then jump to VC2012 features in LLVM 3.5 assuming that goes well.  We're talking about a 6 month delta between the two, and I think we'll learn a lot in the first step.
> > 
> > I think the biggest jump will be to have a floor at all, and I think we should just pick on that makes sense, and advertise the day lights out of it. Put it in the 3.4 release notes that going forward we're going to be dropping support for older toolchains, etc., etc. This will really help manage the expectations of users, and ensure that folks plan adequately for 3.5 and get C++11-supporting toolchains installed on their systems, etc.
> > 
> > I have also heard no serious objection to the three versions I gave as a baseline: VC2012, GCC 4.7 (the series, not any specific patch release), and Clang 3.1.
> 
> Ok.  If no-one has an objection, then putting it in the release notes (and the announcement email!) makes sense.  We can make the switch a few weeks after the release if no one has strongly objected.

Requiring GCC 4.7 or Clang 3.1 would work fine for us.  We may need to
jump through some hoops to keep ports working on FreeBSD 8.4 until the
end of support (June 30, 2015), but we're probably going to need to do
work there anyway with other code bases adopting C++11.

For FreeBSD 11 we plan to support compilation with Clang and an
externally bootstrapped GCC with support for GCC 4.9 and maybe 4.8 and
4.7 if someone does the work.  For us, the biggest thing that helps is
requirements stability.  Today you could probably pick a somewhat newer
Clang than 3.1 without much real impact on us, but it would hurt to have
the requirements change with every release.  From our perspective it's
much better to change no more than every two years or so.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20131028/ee819230/attachment.sig>


More information about the cfe-dev mailing list