On Wed, 2009-06-03 at 08:59 -0400, Jeff Squyres wrote:
Why use a bunch of individual query functions when we could have a single, much more general form that is more easily extensible? The query function would essentially be driven by an enum indicating the specific request, and the OUT arguments could be varargs.
+++ Advantage: this one function can be extended simply by adding new enum values, possibly in an MPI implementation-specific way (e.g., have some non-standard / value-add functions)
The existing method can also be extended simply by adding new functions, possibly in a MPI implementation-specific way.
--- Disadvantage: lose compiler type safety checking when building/ debugging tools that use this interface.
A very valid point, it's far from easy to understand the interface currently and we need all the help we can get via type checking or any other means.
I don't have strong feelings either way. I think I'm marginally in favor of individual functions just because it gives type safety for tools authors. But I could be convinced to go the enum/varargs route if people feel strongly.
Personally I'm in favour of extensions being done with sympathy to the existing interface. Unless there is a significant reason to move, which I can't see, changing the communication mechanism is just going to add confusion and raise the barrier for people implementing either side of this interface. Ashley Pittman,