-
Notifications
You must be signed in to change notification settings - Fork 157
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
Add prefixes to macros in in config.hpp.in #554
Comments
Thanks for the RFC, I agree this would be nicer. I would suggest using |
Not blocking, just wanted to raise a concern since it's part of public API (I don't have a link at hand, but it was suggested in one of the examples to check these variables).
Ok! 😉 |
Summary
To prevent potential macro naming conflicts between oneMKL and client applications, this RFC proposes adding a unique prefix (such as
ONEMKL_
orONEAPI_ONEMKL_
) to all macros defined in oneMKL's public API.Problem statement
oneMKL defines a bunch of configuration macros in
config.hpp
, which is transitively included in the<oneapi/mkl.hpp>
file.Those are
ENABLE_<backend>_BACKEND
for each enabled backend,BUILD_SHARED_LIBS
andREF_(BLAS|CBLAS)_LIBNAME
.As a consequence, the client application that tries to use oneMKL will also have them all defined. This could be useful, but, since macros don't obey any scope rules, they can also easily cause confusion if the client application itself uses, e.g.,
ENABLE_CUFFT_BACKEND
orBUILD_SHARED_LIBS
.ES.33 in C++ Core Guidelines recommends adding supposedly unique prefixes (e.g., your organization’s name) to the macro names.
As such, I suggest adding
ONEMKL_
orONEAPI_ONEMKL_
prefix to all the macros defined in the public API.Details
The text was updated successfully, but these errors were encountered: