The current specification is inconsistent where datatypes need to be committed before use. Some groups of functions (RMA, File I/O) specifically require a committed datatype. For other functions like MPI_Pack or MPI_Reduce_local it is unclear.
An exception is made for type constructor functions. Assuming that the exception list would be complete also doesn't work - it would require a commit before free and also prevent a type from being committed in the first place.
Proposal
Change the description of MPI_Type_commit to state that types must be committed for all functions but type constructor, free and commit functions.
Problem
The current specification is inconsistent where datatypes need to be committed before use. Some groups of functions (RMA, File I/O) specifically require a committed datatype. For other functions like
MPI_Pack
orMPI_Reduce_local
it is unclear.An exception is made for type constructor functions. Assuming that the exception list would be complete also doesn't work - it would require a commit before free and also prevent a type from being committed in the first place.
Proposal
Change the description of
MPI_Type_commit
to state that types must be committed for all functions but type constructor, free and commit functions.Changes to the Text
Impact on Implementations
None
Impact on Users
More clarity
References and Pull Requests