It turns out that MPI_TYPE_GET_ENVELOPE() is defined rather awkwardly because
it does not return the 'count' argument that was used when the supplied
datatype was created. This is not a fatal flaw, because the count can still be
derived from the other fields, but it is awkward because it depends on the
combiner. So I would argue that we really should add a 'count' return value for
this function.
Observe that if we have count, we don't even need num_addresses, num_integers
or num_datatypes, since they can be derived easily from the count and combiner.
So, my minimal-change proposal is to add 'count' as an OUT argument. And my
maximal-elegance proposal is the above plus deleting the other three num_XXX
args.
I view this almost as a bindings issue, since we are providing exactly the same
information as we were before. It's just in a more convenient form, and has
better symmetry with the type constructors. It also makes for a cleaner
separation between MPI_TYPE_GET_ENVELOPE() and MPI_TYPE_GET_CONTENTS().
Comments? I know it's awfully late, but this would be a very localized change
to the document - certainly less sweeping than some of the other errors which
have been caught this week...
-- Eric Salo Silicon Graphics salo@sgi.com