-
Notifications
You must be signed in to change notification settings - Fork 20
Updating Camp to C++17 #171
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
Conversation
|
This is a quick and dirty solution to building without warnings for c++17
|
| CAMP_TEST_BEGIN(array, deduction_guide) | ||
| { | ||
| camp::array<int, 2> a{-1, 1}; | ||
| camp::array a{-1, 1}; |
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.
Did you try Tom's suggestion of camp::array a(-1, 1);?
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.
Yes, when I do that I get the error
/g/g0/belcher6/camp/test/array.cpp(407): error: too many initializer values
/g/g0/belcher6/camp/test/array.cpp(407): error: no suitable constructor exists to convert from "int" to "camp::array<int, 2UL>"
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.
OK. I guess we can disable this test if CUDA is enabled.
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.
@adayton1, I did some digging around and there was a suggestion to update the cuda version. I updated to CUDA 11.8.0 and used clang/18.1.8 (loaded the clang/18.1.8-cuda-11.8.0-gcc-11.2.1 module) and it worked on rzansel. So - it looks like this is a bug which has been fixed on later cuda versions than I initially tried (I was running on 11.2.0 before).
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 could add a test for this in the azure pipelines... but I noticed that cuda isn't being turned on for the nvcc docker runs. is that done on purpose?
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.
Excellent. I'm glad the update worked. The extra error you posted means it didn't generate the right aggregate initializer like it should have. Has the min CUDA version for RAJA advanced that far yet? If so, we might be able to get some compile time back on tuples for nvcc builds as well.
I noticed that cuda isn't being turned on for the nvcc docker runs. is that done on purpose?
No, unless I missed it, and that's horrifying. Creating an issue about that right now...
trws
left a comment
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.
This looks great, thanks @kab163 for getting this done. I'm going to create a followup issue to go back through and remove the C++14 and old compiler workarounds, and document the new requirement, but since it wasn't documented before apparently I'm not going to hold this back for it. Good stuff!
No description provided.