-
Notifications
You must be signed in to change notification settings - Fork 758
Deprecate C++03, C++11, MSVC < 2017, GCC < 5.0 #1089
Deprecate C++03, C++11, MSVC < 2017, GCC < 5.0 #1089
Conversation
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.
Please rename that one macro with a problematic name and this will be good to go.
(...I realize that there are already some reserved names used in Thrust, we should probably get rid of those one day also.)
e67ca5f
to
4c6c8aa
Compare
Renamed the macro and made the same change in cub as part of thrust/cub#21. |
New shelve 28219812 |
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.
Looks good once the comments are addressed; the only changes I've asked for are minor.
4c6c8aa
to
e9d521e
Compare
New shelve 28221412 |
e9d521e
to
f18ef8b
Compare
Updated with a ton of changes that get this to build on MSVC2015. A commit with just the new changes can be found here: alliepiper@1c9440e Relaunched CI under shelve 28231909. |
f18ef8b
to
149ef5a
Compare
149ef5a
to
e58d51f
Compare
Addressed issue (removed __
from identifier)
Merged with the -Werror and deprecation PRs to check for incompatible CI builds. New shelve is 28232673. |
e58d51f
to
c5504c3
Compare
It turns out that MSVC 2015 lies about being C++14 compliant. It doesn't have extended constexpr, but
So what do we want to do about this?
|
I vote for the second option (and am currently testing MSVC 2017 and 2019). |
b4ec71e
to
1c0452b
Compare
This last push updates the deprecation checks to give an This patch also gets everything building on MSVC 2017 and 2019 using C++14 with the async algorithms enabled, and all tests pass (with the exception of #1098, that still needs to be tracked down). New shelve: 28243163 |
786457e
to
2cc6847
Compare
b756453
to
72e7f5e
Compare
Make sure to put the "Reviewed-by:" line in this commit (one for each reviewer). |
72e7f5e
to
086193d
Compare
Build infrastructure and static configuration fixes: - Bump CMAKE_CXX_STANDARD to 14 - Add `-Werror all-warnings` to NVCC to promote warnings to errors - Add `-Xcudafe --display_error_number` to get useful diagnositics from cudafe. - Clean up cub include dir spec in CMake. - Move THRUST_DEPRECATED logic out of compiler.h and into new header. - Fix CPP dialect detection on newer MSVC. - Remove raw `__cplusplus` checks. - Use `_Pragma`/`__pragma` instead of `#pragma` in macro. - Remove THRUST_BEGIN/END_NS macros. - These were used inconsistently, rendering them non-functional. Removing to prevent people from trying to use them. Workarounds for msvc: - MSVC isn't a fan of `decltype(...)::some_member` syntax. - WAR by aliasing the `decltype(...)` and doing `NewAlias::some_member` - Missing `template` keyword when rebinding pointer in `async/reduce.h` - Silence warning C4494 `declspec(allocator) used on non-pointer/ref type` - Bug in MSVC STL: microsoft/STL#696 - Disable async sort test on MSVC - Triage. Looks like a bug in cudafe? See NVIDIA#1098. - Add pointer<T>::pointer_to(reference) - Required for C++11, hard compile error on MSVC. - Bring a definition of `atanh` into scope for complex number impl - Fix floating point literals be declared as floats instead of doubles - Replace `std::remove_reference<T>::type&` with `std::add_lvalue_reference`. - Same behavior, and MSVC chokes on the other syntax when followed by `__host__`. - Remove constexpr markup from defaulted functions. - These are constexpr by default when possible, and the compilers were complaining about the markup in places. - Use `thrust::detail::integer_traits` instead of `std::numeric_limits` in device code. - Avoid aligning beyond platform limits in alignment.cu. - Pass /bigobj to MSVC so it can handle the async tests - Work around MSVC compiler bug by replacing SFINAE with static dispatch Bug 2865172 Bug 2880936 Reviewed-by: Bryce Adelstein Lelbach aka wash <[email protected]> Reviewed-by: Michał 'Griwes' Dominiak <[email protected]>
086193d
to
66d0110
Compare
Deprecate everything before C++14, MSVC 2017, and GCC 5.0.
Includes many fixes to get things building on MSVC and assorted config consistency / modernization updates. See commit message for full details.