Deprecate C++03, C++11, MSVC < 2017, GCC < 5.0#1089
Conversation
griwes
left a comment
There was a problem hiding this comment.
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 |
brycelelbach
left a comment
There was a problem hiding this comment.
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 <brycelelbach@gmail.com>
Reviewed-by: Michał 'Griwes' Dominiak <griwes@griwes.info>
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.