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

Karen Shaeffer shaeffer at neuralscape.com
Sun Oct 27 13:14:26 PDT 2013


On Sun, Oct 27, 2013 at 02:31:35PM +0100, Benjamin Kramer wrote:
> 
> On 27.10.2013, at 10:23, Chandler Carruth <chandlerc at google.com> wrote:
> 
> > Now for the carrot: if we go with this plan, then immediately after branching for 3.4,  we would be able to use the vast majority of C++11 features, targeting the following as the oldest toolchains supported through the 3.5 release timeframe:
> > 
> > GCC 4.7
> > Clang 3.1
> > VS 2012
> 
> I do think that the time has come to switch to C++11 now as toolchains are becoming available everywhere. However, in my opinion a rule based on the releases of compilers won't work out for the majority of users out there. I'd rather base it on availability on operating systems, that's of course a fuzzy rule but it turns out that the number of common offenders shipping outdated toolchains is small.
> 
> My proposal is: look at the versions of OS's released in the last two years and check if they have shipped an outdated toolchain.
> 
> - Freebsd 10 is on Clang/libc++ by default, FreeBSD 9 also shipped Clang. Don't see problems here.
> - Not sure about other BSD's, but I'd expect them to either follow FreeBSD or provide a newer GCC already.
> - OS X is on Clang/libc++ by default now and has shipped Clang for a while. No issue here.
> - Windows is special as people have to manage their own toolchain. However, we have aggressively dropped old MSVC versions in the past, I doubt dropping MSVC 2010 is a big problem as there's still 2012 and 2013 for people to pick from.
> 
> Then there's the long list of linux distros. I looked at those supported by Clang's toolchain config right now.
> - Debian has (finally) switched to GCC 4.7. I don't think supporting old stable (Debian 6 is from 2011, GCC 4.4) really helps anyone.
> - RHEL/CentOS is still on GCC 4.4 as far as I know. This is a problem if not solved within the next 6 months.
> - SLES 11 was upgraded to GCC 4.7 in a service pack recently.
> - Ubuntu is on GCC 4.7; LTS is on 4.6 but the next LTS release is likely out before LLVM 3.5 ships.
> - The remaining distros have shorter release cycles (Arch, Exherbo, Fedora, OpenSUSE) and have migrated to a recent toolchain long ago.
> 

Hi,
Ubuntu 13.10 is released and shipping g++-4.8.1. Ubuntu 14.04 is LTS and will support
g++-4.8.1. g++-4.8.1 claims to be fully compliant with C++11.

My understanding is g++4.7 is broken. I would use 4.7.2 or later.

enjoy,
Karen
-- 
Karen Shaeffer                 Be aware: If you see an obstacle in your path,
Neuralscape Services           that obstacle is your path.        Zen proverb



More information about the cfe-dev mailing list