[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-09-12 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14131954#comment-14131954
 ] 

Dominic Hamon commented on MESOS-750:
-

I wasn't planning on it to avoid churn in the documentation. Having the 
configure script (and to a lesser extent, CI coverage) be the source of truth 
is more stable.

If you think it's worthwhile, we can certainly try to track the supported 
compiler versions.

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler
Assignee: Dominic Hamon
 Fix For: 0.21.0


 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-09-12 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14132077#comment-14132077
 ] 

Dominic Hamon commented on MESOS-750:
-

[~bmahler] That's a good point. We probably need to have a documented whitelist 
in the style guide for the features that we have enabled (MESOS-1788).

[~cmaloney] If I had my way, we'd jump straight to 4.8.2 at this point as it's 
widely available. I am curious if the user stuck on 4.4 actually needs to build 
from head or if they can run from the distributed binaries. Perhaps there are 
some glibc incompatibilities?

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler
Assignee: Dominic Hamon
 Fix For: 0.21.0


 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-09-12 Thread Cody Maloney (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14132094#comment-14132094
 ] 

Cody Maloney commented on MESOS-750:


[~dhamon] The thing with jumping straight to 4.8.2 is what distributions do we 
want to have work with mesos out of the box. We should really define what we 
want as compatible platforms (The last redhat/CentOs release? All supported 
ubuntu releases? etc). Whatever the default compilers are on those 
distributions are what we should support. Note that if 4.8 is the baseline, we 
will probably want to be explicit about not accepting 4.8.0, 4.8.1 (They had 
some very major bugs).

I personally prefer just requiring people use a new compiler and making it easy 
to get the blessed compiler version on older platforms (GCC 4.8 or 4.9. GCC 
isn't that hard to build, nor does it take too long if you disable everything 
but C/C++). But this should all probably be a seperate discussion thread.

As for the 4.4 user, that is actively being discussed / worked on.

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler
Assignee: Dominic Hamon
 Fix For: 0.21.0


 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-29 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14115423#comment-14115423
 ] 

Dominic Hamon commented on MESOS-750:
-

Closing this as fixed as we now require a subset of C++11.

We should open individual tickets for C++11 language features we'd like to add 
to the whitelist so we can discuss the pros and cons, and investigate compiler 
availability on a case-by-case basis.

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler
Assignee: Dominic Hamon
 Fix For: 0.21.0


 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-28 Thread Patrick Reilly (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14113982#comment-14113982
 ] 

Patrick Reilly commented on MESOS-750:
--

+1 for [~dhamon] suggestion. I really like the notion of having a simple suite 
of configure tests that exercise the C++11 features we actually care about. 
With this approach we can die early if they're trying to compile on a 
unsupported platform. We could also give them some process guidance on various 
platforms; for ways to fix the issue, (e.g., recommend devtoolset on CentOS, 
etc).

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-28 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14114289#comment-14114289
 ] 

Dominic Hamon commented on MESOS-750:
-

Checking our existing c++11 test, it checks the following features:

* static_assert
* right angle brackets
* decltype
* rvalue references
* auto

it doesn't check variadic templates but this seems like it should build on 
g+\+-4.4. As such, i think it is worth assuming C++11 by default and making 
this check fatal. We can add variadic templates next.

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-28 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14114443#comment-14114443
 ] 

Dominic Hamon commented on MESOS-750:
-

I can confirm that the existing C+\+11 check works for g+\+-4.4, 4.6, and 4.8 
(and clang 3.4 and 3.5, for the record). However, we do have an issue with 
g+\+-4.7 - see MESOS-1095. Also, I haven't checked g+\+-4.5.

So if it is acceptable to develop on that subset of compilers then we can move 
forward with requiring C+\+11 and also have a well-defined feature set as part 
of the configure step. Thoughts? [~vinodkone]?



 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-28 Thread Vinod Kone (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14114449#comment-14114449
 ] 

Vinod Kone commented on MESOS-750:
--

SGTM.

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-28 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14114515#comment-14114515
 ] 

Dominic Hamon commented on MESOS-750:
-

https://reviews.apache.org/r/25168
https://reviews.apache.org/r/25169


 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-27 Thread Dominic Hamon (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14112422#comment-14112422
 ] 

Dominic Hamon commented on MESOS-750:
-

First we need to decide a minimum compiler to support. My vote is for g++ 
4.8.2/clang 3.4. The below discussion will use these as an example.

We can't flip the switch until the availability of g++ 4.8.2 and clang 3.4 
(maybe 3.3) are more widespread. Given ubuntu LTS is now 14.04 which comes with 
g++ 4.8.2[1] and clang 3.4[2], this may now be possible.

However, CentOS 6 ships with g++ 4.4.7 [3] which means we would require 
developers on that platform to use devtoolset-2. Not a deal breaker, but a 
policy decision that probably needs some thought.

Once we have decided to, we need some bulletproof compiler tests in the 
configure script. We can either check the version number, or (ideally) have a 
suite of configure tests that exercise the C++11 features we care about. This 
will need curation but will give us an accurate result. Note that it is 
important to run the code as well as compile it.

1. http://packages.ubuntu.com/trusty/g++
2. http://packages.ubuntu.com/trusty/clang
3. http://mirrors.sonic.net/centos/6/os/x86_64/Packages/

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-26 Thread Adam B (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14111487#comment-14111487
 ] 

Adam B commented on MESOS-750:
--

When are we targeting this for now? 0.19 and 0.20 have come and gone. Can we 
flip the switch for 0.21?

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (MESOS-750) Require compilers that support c++11

2014-08-26 Thread Cody Maloney (JIRA)

[ 
https://issues.apache.org/jira/browse/MESOS-750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14111495#comment-14111495
 ] 

Cody Maloney commented on MESOS-750:


If the switch isn't flipped, is it possible to at least get a buildbot or 
something similar which will test the older compiler + libstdc++? 

Even gcc 4.4 has quite a bit of C++11 supported: 
https://gcc.gnu.org/gcc-4.4/cxx0x_status.html. And the ABI for C++ has stayed 
stable inside GCC / GCC will produce the older ABI if/when requested even if a 
newer compiler is used: 
https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/C_002b_002b-Dialect-Options.html

The only thing to watch out for is libstdc++ silent API/ABI breakages, 
intentional ABI changse have been held off until they decide to have a big 
break: https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html

 Require compilers that support c++11
 

 Key: MESOS-750
 URL: https://issues.apache.org/jira/browse/MESOS-750
 Project: Mesos
  Issue Type: Improvement
  Components: technical debt
Reporter: Benjamin Mahler

 Requiring C++11 support will provide substantial benefits to Mesos.
 Most notably, the lack of lambda support has resulted in a proliferation of 
 continuation style functions scattered throughout the code. Having lambdas 
 will allow us to reduce this clutter and simplify the code.
 This will require carefully documenting how to get Mesos compiling on various 
 systems to make this transition easy.



--
This message was sent by Atlassian JIRA
(v6.2#6252)