Don't require migration constructors for all array objects at compile time
Currently, every chare array element type is required to have a
CkMigrateMessage* constructor that would be used during migration events (LB, FT). The code generator assumes such a definition is provided, and compilation or linking fails if it's missing. This is an extra hurdle for new users to clear, or extra boilerplate they just need to copy in and ignore until it becomes relevant.
We can move this requirement later, to when users actually want features that require migration support. Ideally, we would still detect the absence at compile time (possibly with the
[migratable] attribute on the chare class), but run time is quite easy, and doesn't impose an API change on existing code.
#2 Updated by Phil Miller over 1 year ago
- Target version changed from 6.8.0 to 6.9.0
BGQ XLC test failed. It will not accept the
#include <type_traits> as currently configured, because GCC's libstdc++ implementation that it references has a feature guard, and XLC fails to compile other stuff in the standard library when I set the feature guard flag manually.
So, we could test for type_traits, and only have it work nicely when that's available.