laristra / flecsi

A mirror of FleCSI's internal gitlab repository.
Other
67 stars 34 forks source link

Template-based task and field registration #600

Closed opensdh closed 5 years ago

opensdh commented 5 years ago

This adds alternative syntax for registering tasks and fields, including support for tasks that are specializations of function templates. They may be able to replace flecsi_register_task/flecsi_execute_task and flecsi_add_field/flecsi_field_instance (and their global/index variants) entirely; so far, some of the tests are changed to demonstrate (and test) the new interface.

The interface of execute may need some work to elegantly handle non-default policies.

staleyLANL commented 5 years ago

I've been too distracted with other work to take a close look, but will try to do so by week's end. Just wanted to say I haven't forgotten about this. :-)

staleyLANL commented 5 years ago

I'll need to print the relevant files and look closely at what you did, but I see the idea, and think this will considerably improve the registration/execution system. The build does seem to be failing at the moment, so I don't think I can approve this PR. Can you check if the build failure is just a formatting issue? I always need to do a "make format" from build/, and sometimes seems to need to run it twice(?).

opensdh commented 5 years ago

The build failure seems (to my inexpert eyes) to be some sort of CMake issue; I don't even know if the build was working (for the refactor branch) prior to this (since Travis doesn't mention it). (I could make an empty pull request to find out, I suppose, but surely someone knows?)

tuxfan commented 5 years ago

The failure is just because of the cmake version. This builds and runs correctly for me, so I'm merging it. Nice work! :-)