[jira] [Commented] (MESOS-750) Require compilers that support c++11
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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)