New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cxx 17 #2880
Cxx 17 #2880
Conversation
Jenkins Build SummaryBuilt from this commit Built at 20190805 - 17:52:47 Test Results
|
FWIW, regarding the clang build failures, I tried a local clang build on my Mac OS machine and got this diagnostic:
|
@scottschurr The problem is the version of xcode you're using ships with the equivalent to clang 5; Support for The options I see are:
Right now, I'm leaning to (3). But I'll leave this PR open for a little while longer. |
I can confirm that things compile on Xcode 10. My opinion is that neither requiring Xcode 10, nor patching I also believe that we probably need to upgrade beyond gcc-5.2 prior to moving to C++17. |
This passes all tests on macOS, using Xcode 10. The code changes look good to me. |
FWIW, if all that is required is a relatively simple work around for Xcode 9 I'd be in favor of pushing ahead. There are some specific capabilities if C++17 that I'd like to use in the code base. I can think of |
|
Here is what src/ripple/beast/cxx17/type_traits.h could look like to patch Xcode 9:
|
Forced push with Howard's patch for xcode 9 |
With @HowardHinnant's patch everything builds, unit tests pass, and server syncs and shuts down cleanly on my Mac using Xcode 9! Nice work! |
The problem with the clang jenkins builds is clang is picking up the standard library from gcc 6 (even though gcc 7 is installed) and gcc 6 does not have @mellery451 and I brainstormed about this and see two options:
We think (2) is the best option. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm supportive of merging this, but let's make sure that it includes the necessary CI changes to ensure ongoing coverage.
Is there any consensus on how to move forward with this? I'd love to see this land. |
Winter is coming
… |
@JoeLoser The plan is to land this early into the 1.4 release. I don't want to put it into the 1.3 release, which is too far along to bump the C++ version. |
This PR is build on 1.3.0-b2 and proposes that we enable C++-17 support. I'm assigning @HowardHinnant and @nbougalis as reviewers: Howard for the code changes and Nik to make the broader decision if we want to approve turning on c++ 17.
Just the commits after
Set version to 1.3.0-b2
need to be reviewed.