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

Kristof Beyls kristof.beyls at arm.com
Tue Oct 29 07:54:00 PDT 2013


I agree that a reasonable amount of notice should be given before making the switch on top-of-trunk.
Quite a few out-of-tree projects try to stay close to top-of-trunk, and I think that’s a good thing, since it provides quick detection & feedback on regressions breaking out-of-tree projects.


To increase the likelihood that out-of-tree projects keep on following top-of-trunk closely, I think it’s necessary to also clearly announce (on this list) well in advance (e.g. at least one month, ideally more) when the minimum requirements on tools needed to build LLVM change.

 

Thanks,

 

Kristof

 

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Chandler Carruth
Sent: 29 October 2013 00:27
To: C. Bergström
Cc: clang-dev Developers; LLVM Developers Mailing List
Subject: Re: [LLVMdev] [cfe-dev] RFC: A proposal to move toward using C++11 features in LLVM & Clang / bounding support for old host compilers

 

On Mon, Oct 28, 2013 at 5:06 PM, "C. Bergström" <cbergstrom at pathscale.com> wrote:

fuzzy://How much "heads up"

 

One full release cycle, so approximately 6 months before a release incorporating this. In addition, probably several weeks to a month between the initial branch for the 3.4 release and the commits that make this so. Still more weeks between when we put it into the release notes for 3.4 and blog about it.

 

-1
If we do it - we should do it properly.

 

We're not talking about doing it improperly, but about doing two independent things independently.

 

---------
I'm strongly against anything which forces this to rely on gnu runtime and libs.

 

You are not being forced to rely on anything. Many people have successfully bootstrapped with libc++, and if you find issues with your setup doing such a bootstrap, patches to fix that would be very welcome.

 

And moreover, a requirement to not use GNU runtimes or libraries in the bootstrap would be totally novel for the project. LLVM and Clang require xlC and MSVC to bootstrap on certain platforms, and you're OK with that? There are plenty of platforms with no Clang port at all but where GCC works fine, and we rely on a GCC host there. This is not new, and not something we should burden the discussion about C++11 features with.

 

 

---------
Further - While c++11 is the best thing ever - Is there actually a driving use case where using c++11 features will significantly improve the quality of the codebase?

 

Yes. See my first email for some of them. See numerous other discussions. Have you tried writing any code with C++11?

 

implementation perspective or performance?

 

We get most of this already today, but it would be cleaner if we just admitted we rely on it.

 

Are there coding style guidelines which should be updated - I've seen code (ab)using auto where it was mostly author preference and not really necessary.

 

Yes, and we have code review for this. If you would like to help review patches for high quality usage of C++11 constructs, that would be welcome.

 

You really push for this, but the underlying motivation still seems unclear. (Show me the c++11 code in the subproject which is the root cause please)

 

I don't know how it could be unclear. I spelled out reasons in my first email. There was a more thorough discussion in past threads on this subject. I'm not going to repeat myself here.

 

And it should be quite obvious that LLD is actively using C++11 code to good effect? That was discussed extensively when the project was added.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131029/ecb42423/attachment.html>


More information about the llvm-dev mailing list