Skip to content

Conversation

@kab163
Copy link
Collaborator

@kab163 kab163 commented Apr 17, 2025

No description provided.

@kab163
Copy link
Collaborator Author

kab163 commented Apr 17, 2025

This is a quick and dirty solution to building without warnings for c++17

  • Should I add back support for C++14 in the CMakeList?
  • Is there another preferred way to ignore the return values of those no-discard functions? (I want it to be simple since I am really just trying to update Umpire to C++17.)

@kab163 kab163 requested a review from rhornung67 April 17, 2025 15:25
trws
trws previously approved these changes Apr 17, 2025
CAMP_TEST_BEGIN(array, deduction_guide)
{
camp::array<int, 2> a{-1, 1};
camp::array a{-1, 1};
Copy link
Member

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);?

Copy link
Collaborator Author

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>"

Copy link
Member

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.

Copy link
Collaborator Author

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).

Copy link
Collaborator Author

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?

Copy link
Member

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...

Copy link
Member

@trws trws left a 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!

@trws trws merged commit db8116f into main Apr 22, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants