Closed bartgol closed 6 years ago
why would builds break then? i don't understand which code is being compiled when strict is on....
When 'strict' is on, there is a piece of code that uses a type Kokkos::Experimental::Sum
(more specifically, a piece of code in ExecSpaceDefs.hpp
for parallel reduction). That type is now actually declared as Kokkos::Sum
, but if KOKKOS_ENABLE_DEPRECATED_CODE
is on, then, inside the Kokkos::Experiemental
namespace you can see using Kokkos::Sum
, which injects the Sum
type also in the Kokkos::Experimental
namespace. The KOKKOS_ENABLE_DEPRECATED_CODE
is however OFF by default, so unless you activate it, the build now breaks. Notice that if you have an old kokkos installation, the type Sum
is inside Kokkos::Experimental
, so everything is fine.
It is a good practice to stay a way from deprecated code in upstream packages, since it can go away with any new release. I suggest to not enable deprecated code, and force HOMMEXX to build with non-deprecated code only, which is more stable.
Right now, Kokkos enables by default deprecated code. When they will finally remove deprecated code, our builds will break. To see what code should be updated, build Kokkos with
KOKKOS_ENABLE_DEPRECATED_CODE:BOOL=OFF
.