Skip to content

Making fmt private #3014

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

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft

Making fmt private #3014

wants to merge 3 commits into from

Conversation

sacpis
Copy link
Collaborator

@sacpis sacpis commented Jun 6, 2025

Making fmt private.

Fixes #2997.

sacpis added 3 commits June 6, 2025 13:50
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Signed-off-by: Sachin Pisal <spisal@nvidia.com>
Copy link
Collaborator

@bmhowe23 bmhowe23 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking a look at this Sachin. Before merging, could you please check what CUDA-QX changes would be needed for this change?

@sacpis
Copy link
Collaborator Author

sacpis commented Jun 6, 2025

Thanks for taking a look at this Sachin. Before merging, could you please check what CUDA-QX changes would be needed for this change?

Sure.

@amccaskey
Copy link
Collaborator

The big issue here is that Logger.h is a common header for downstream libraries (so they can get cudaq::info()) and it has FmtCore.h as an include. The changes here do not change that. The real fix is to remove any fmtlib headers from our own headers and hide them in cpp implementation code. I'm not sure how one would do that and keep cudaq::info() variadic though.

@boschmitt
Copy link
Collaborator

Thanks for taking a look at this Sachin. Before merging, could you please check what CUDA-QX changes would be needed for this change?

CUDA-QX have a couple of files that depends on fmt that comes from CUDA-Q. Thus we would either make those files not depend on fmt or make CUDA-QX have its own private fmt.

@sacpis
Copy link
Collaborator Author

sacpis commented Jun 9, 2025

The big issue here is that Logger.h is a common header for downstream libraries (so they can get cudaq::info()) and it has FmtCore.h as an include. The changes here do not change that. The real fix is to remove any fmtlib headers from our own headers and hide them in cpp implementation code. I'm not sure how one would do that and keep cudaq::info() variadic though.

Thanks @amccaskey. I have a question about another option. Why shouldn't we upgrade fmt to the latest version (11.2.0)?

@george-pippos-qb
Copy link

Thank you all for taking a look at this for me after I raised this issue. I am trying to plan some work for our company's project that uses CUDA-Q and need to know whether this is likely to be in the next release (and a rough ETA of when the next release will be). I will need to look at alternatives for working around this problem in our repo if timelines don't line up so I would greatly appreciate an update.

@bmhowe23
Copy link
Collaborator

bmhowe23 commented Jul 4, 2025

Thank you all for taking a look at this for me after I raised this issue. I am trying to plan some work for our company's project that uses CUDA-Q and need to know whether this is likely to be in the next release (and a rough ETA of when the next release will be). I will need to look at alternatives for working around this problem in our repo if timelines don't line up so I would greatly appreciate an update.

It sounds like our primary near-term option is to simply update the fmt library. Do you agree @sacpis?

@sacpis
Copy link
Collaborator Author

sacpis commented Jul 4, 2025

Thank you all for taking a look at this for me after I raised this issue. I am trying to plan some work for our company's project that uses CUDA-Q and need to know whether this is likely to be in the next release (and a rough ETA of when the next release will be). I will need to look at alternatives for working around this problem in our repo if timelines don't line up so I would greatly appreciate an update.

It sounds like our primary near-term option is to simply update the fmt library. Do you agree @sacpis?

Yes, I do. Will put up a PR with updated fmt.

@sacpis sacpis mentioned this pull request Jul 4, 2025
@sacpis
Copy link
Collaborator Author

sacpis commented Jul 8, 2025

@george-pippos-qb @bmhowe23 Just FYI, we have updated fmt.

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.

Can't build with CUDA-Q when project already uses a version of fmt
5 participants