Skip to content
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

Deprecate C++11 and C++14 support in libcu++ #3165

Closed
bernhardmgruber opened this issue Dec 13, 2024 · 0 comments · Fixed by #3173
Closed

Deprecate C++11 and C++14 support in libcu++ #3165

bernhardmgruber opened this issue Dec 13, 2024 · 0 comments · Fixed by #3173
Assignees
Labels
2.8.0 target for 2.8.0 release libcu++ For all items related to libcu++

Comments

@bernhardmgruber
Copy link
Contributor

We should add a deprecation warning to libcu++ that suport for the C++11 and C++14 dialects is deprecated. This warning should be suppressable by a macro the same way it can be supressed for CUB and Thrust.

Background

Thrust and CUB deprecated C++11 and C++14 in the past and issue deprecation warnings when compiling in those standards. Both libraries will move to C++17 at the next major release. Experimental libraries like cudax already require C++17 today. While libcu++ started in C++14 initially, many C++11 backports were added over time and libcu++ is mostly written in C++11/14 at the moment. As last project in CCCL, it's time to begin moving libcu++ to C++17 as well.

Motivation

Maintaining support for C++11 and C++14 incurs significant costs in resources for building and testing, developer time, compilation time for our users, cuts us off from modern features to provide better APIs, and thus ultimately diminishes the value we can deliver to users. Moving the entire CCCL to C++17 will:

  • Reducing CI cost by cutting the build matrix in half (from C++11/14/17/20 to 17/20)
  • Shift developer effort from backports and workarounds to providing more features and improve performance
  • Provide better code by reducing implementation complexity, have less bugs, faster compiles, and better+safer APIs

End of C++11/14 support

The deprecation warning should be added soon to get the word out. The eventual removal of C++11/14 support is being discussed internally, and more information will be communicated when a conclusion has been reached.

But I need C++11/14!

Please reach out to us to discuss your circumstances. Feel free to comment on this issue or start a discussion.

@github-project-automation github-project-automation bot moved this to Todo in CCCL Dec 13, 2024
@bernhardmgruber bernhardmgruber added libcu++ For all items related to libcu++ 2.8.0 target for 2.8.0 release labels Dec 13, 2024
@miscco miscco linked a pull request Dec 16, 2024 that will close this issue
@github-project-automation github-project-automation bot moved this from Todo to Done in CCCL Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.8.0 target for 2.8.0 release libcu++ For all items related to libcu++
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants