Being explicit about compiler version requirements sounds great!

GCC is still our explicitly supported compiler toolchain and it's how we
test releases for production purposes, at least at Twitter.

We have been supporting Clang as a best effort so far, but I agree it would
be great to document supported versions. Taking a look at some of our CI, I
see Clang 3.3. is building Mesos.

 Looking at CI for gcc, I see the following building with C++11:

*Mesos builds with C++11:*
CentOS 5 - with devtoolset-2 gcc 4.8.1
CentOS 6 - with devtoolset-2 gcc 4.8.1
Fedora 19 - gcc 4.8.2
Fedora 20 - gcc 4.8.2
Ubuntu 13.10 - gcc 4.8.x

*Mesos does not build with C++11:*
CentOS 5 - gcc 4.1.2
CentOS 6 - gcc 4.4.7
Ubuntu 12.10 - gcc 4.7.x
Ubuntu 12.04 - gcc 4.6.x

So we already do not support gcc 4.7 for C++11.

It's important here to make the distinction that this is for development,
ideally those are running from RPMs are agnostic to the gcc version used.
But, I suppose the c++11 shared library will not present on the machine.

On Wed, Feb 26, 2014 at 12:08 PM, Dominic Hamon <[email protected]>wrote:

> Forwarding from the right account to avoid Spam filters ...
>
> ---------- Forwarded message ----------
> From: Dominic Hamon <[email protected]>
> Date: Wed, Feb 26, 2014 at 11:46 AM
> Subject: Re: Path forward to C++11.
> To: [email protected]
>
>
> What do you mean by 'C++11 support' in the compiler? g++4.7 supports some
> features, not all.
>
> I think we need to define the set of C++11 features we want to support
> first before making any decisions regarding timeline. Then we can look at
> the state of the nation in regards to C++11 feature support in different
> compilers on different OSs, and which are available out of the box. We
> don't want to limit our community involvement by shutting out certain
> platforms for development.
>
> Ideally, we'd be able to say something like "0.19.0 builds on g++4.7 and
> clang 3.3 or greater" and "0.20.0 builds on g++4.8 and clang 3.4 or
> greater" instead of blanket C++11 support.
>
>
>
>
> On Wed, Feb 26, 2014 at 10:20 AM, Benjamin Mahler <
> [email protected]
> > wrote:
>
> > Update on MESOS-750:
> >
> > 0.17.0 is being released with the --with-cxx11 capability at configure
> > time.
> >
> > I chatted with some of the committers and we'd like to move forward with
> > the final two phases of MESOS-750 as follows:
> >
> > 0.18.0: --with-cxx11 will become the _default_. --without-cxx11 will be
> > available for those who wish to use older compilers.
> >
> > 0.19.0: c++11 required; Mesos will not build with a compiler that does
> not
> > have c++11 support.
> >
> > If there are any objections please speak now. If not, I'll update the
> > ticket to reflect the current path towards C++11.
> >
> >
> > On Mon, Oct 28, 2013 at 8:09 PM, Benjamin Mahler
> > <[email protected]>wrote:
> >
> > > Thanks for the heads up, we're likely to upgrade to 3.3.6, but I've yet
> > to
> > > confirm that it builds with c++11.
> > >
> > >
> > > On Thu, Oct 24, 2013 at 8:10 AM, Tim St Clair <[email protected]>
> > wrote:
> > >
> > >> +1 to the approach.
> > >>
> > >> FWIW made a quick update to the zookeeper.spec (
> > >> http://koji.fedoraproject.org/koji/buildinfo?buildID=465529) and
> > updated:
> > >>
> > >> export CC='gcc -std=c11'
> > >> export CXX='g++ -std=c++11'
> > >>
> > >> prior to 'configure', and it failed compilation pretty quickly.
> > >> It may make sense to track integration issues and
> versions...somewhere.
> > >>
> > >> So when --with-cpp11 is enabled, it can hard check on version >=
> > >> fixed_version.
> > >>
> > >> Cheers,
> > >> Tim
> > >>
> > >> ----- Original Message -----
> > >> > From: "Benjamin Mahler" <[email protected]>
> > >> > To: [email protected]
> > >> > Sent: Wednesday, October 23, 2013 4:46:49 PM
> > >> > Subject: Path forward to C++11.
> > >> >
> > >> > As discussed in MESOS-750 <
> > >> https://issues.apache.org/jira/browse/MESOS-750>,
> > >> > we would like to move to C++11.
> > >> >
> > >> > The proposed plan is to do this in phases to allow everyone time to
> > >> adjust
> > >> > to this change:
> > >> >
> > >> >
> > >> > Phase 1: Send an email to the dev@ list soliciting objections /
> > >> feedback.
> > >> > We're currently here. :)
> > >> >
> > >> > Phase 2: Add an option --with-cpp11 that defaults to false.
> > >> >
> > >> > Phase 3: At this point, developers can and should begin using
> > >> --with-cpp11.
> > >> > In this phase, we'll need to make sure the project and dependencies
> > can
> > >> > compile with c++11.
> > >> >
> > >> > Phase 4: Default to --with-cpp11 but still leave the option in order
> > to
> > >> > allow folks to turn this off if needed. At this point, we still
> cannot
> > >> rely
> > >> > on C++11.
> > >> >
> > >> > Phase 5: Remove --with-cpp11 leaving no ability to turn it off. From
> > >> this
> > >> > point forward, we can begin to use C++11 features unconditionally.
> > >> >
> > >> >
> > >> > Please reply to this thread with any objections, comments, or
> advice!
> > To
> > >> > get a better sense of how others feel about this (I currently only
> > know
> > >> > that some of the other core contributors are on board), please feel
> > >> free to
> > >> > reply with something as simple as a +1 as well.
> > >> >
> > >> > Thanks!
> > >> > Ben
> > >> >
> > >>
> > >> --
> > >> Cheers,
> > >> Tim
> > >>
> > >
> > >
> >
>
>
>
> --
> Dominic Hamon | @mrdo | Twitter
> *There are no bad ideas; only good ideas that go horribly wrong.*
>

Reply via email to