-
Notifications
You must be signed in to change notification settings - Fork 788
[SYCL] Move implementation details under sycl_private namespace #1311
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
[SYCL] Move implementation details under sycl_private namespace #1311
Conversation
ABI tests require a way to differentiate private and publicly accessible symbols. Wrap private symbols in sycl_private namespace to exclude them from ABI checks. Signed-off-by: Alexander Batashev <[email protected]>
…_private * origin/sycl: [SYCL][NFC] Fix static code analysis concerns (intel#1283) [SYCL] Fix the test/basic_tests/buffer/subbuffer.cpp (intel#1277)
Signed-off-by: Alexander Batashev <[email protected]>
What is "private symbol"? |
Does it sound better now? |
We have "detail" namespace for "implementation details". |
|
What is wrong with anonymous namespace? |
I see |
Yes, we still need to keep pointers to impl object. To fill in template arguments I needed forward declarations of classes. But pointers and forward declarations are not linkable symbols, so, those are not really "uses". And we still have a differentiation between accessible and inaccessible pieces of code. |
@alexbatashev, could you answer these questions, please? |
I doubt I can reliably filter out everything that is inside cl::sycl::detail::(anonymous) namespace, but I’ll experiment a bit more with that. |
@bader while I can reliably detect anonymous namespaces on Linux, Windows is a bit trickier. But that's not the main problem. The main problem is that anonymous namespace implies internal linkage. And it breaks our tests:
Can we keep |
…SION (intel#1311) [SYCL][Matrix] Replace SYCL_EXT_ONEAPI_MATRIX with SYCL_EXT_ONEAPI_MATRIX_VERSION Related to intel#6957 Signed-off-by: Sidorov, Dmitry <[email protected]>
ABI tests require a way to differentiate private and publicly accessible
symbols. Wrap symbols that are not be accessible from user application
in sycl_private namespace to exclude them from ABI checks.
Signed-off-by: Alexander Batashev [email protected]