You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When adding support for libc++, I needed to configure the LLVM build to enable more permissive dynamic casts, that fall back to string comparison and accept the cast despite differences in the static definitions. While this is the default behavior with gcc, the fact that we clearly rely on this could cause hard to debug problems. I think most likely, we have class definitions for the simulator states that are in header files, causing potential ambiguity in the dynamic casting.
I think we need to make a pass over the code base more generally to more carefully examine our header files and reduce them to declarations only to avoid potential compatibility issues. For anything that is defined in a header file, it should be save to compile it with a different toolchain than CUDA-Q and still work the same way when linked together with pre-built CUDA-Q libraries.
The text was updated successfully, but these errors were encountered:
When adding support for libc++, I needed to configure the LLVM build to enable more permissive dynamic casts, that fall back to string comparison and accept the cast despite differences in the static definitions. While this is the default behavior with gcc, the fact that we clearly rely on this could cause hard to debug problems. I think most likely, we have class definitions for the simulator states that are in header files, causing potential ambiguity in the dynamic casting.
I think we need to make a pass over the code base more generally to more carefully examine our header files and reduce them to declarations only to avoid potential compatibility issues. For anything that is defined in a header file, it should be save to compile it with a different toolchain than CUDA-Q and still work the same way when linked together with pre-built CUDA-Q libraries.
The text was updated successfully, but these errors were encountered: