Description
Problem
We did not specify ABI definitions for the following handles.
/* Types for the MPI_T interface */
MPI_T_enum
MPI_T_cvar_handle
MPI_T_pvar_handle
MPI_T_pvar_session
MPI_T_event_instance
MPI_T_event_registration
@jsquyres reported this and notes the following:
I notice that mpi_abi.h in MPICH defines MPI_T_enum as (https://github.com/pmodels/mpich/blob/main/src/binding/abi/mpi_abi.h#L492):
typedef struct MPI_T_enum_t* MPI_T_enum;
But Open MPI defines MPI_T_enum as (https://github.com/open-mpi/ompi/blob/main/ompi/include/mpi.h.in#L453):
typedef struct mca_base_var_enum_t *MPI_T_enum;
Even thought these handles just hold integers, since both implementations already use incomplete struct pointers, we should continue that.
Proposal
typedef struct MPI_ABI_Comm * MPI_Comm;
is our convention for handles so we should define these as:
/* Types for the MPI_T interface */
typedef struct MPI_ABI_T_enum* MPI_T_enum;
typedef struct MPI_ABI_T_cvar_handle* MPI_T_cvar_handle;
typedef struct MPI_ABI_T_pvar_handle* MPI_T_pvar_handle;
typedef struct MPI_ABI_T_pvar_session* MPI_T_pvar_session;
typedef struct MPI_ABI_T_event_instance* MPI_T_event_instance;
typedef struct MPI_ABI_T_event_registration* MPI_T_event_registration;
Changes to the Text
Trivial once we decide whether this goes in the ABI chapter or the tools chapter.
Impact on Implementations
Tools ABI is complete.
Impact on Users
Tools ABI is complete.
References and Pull Requests
Metadata
Metadata
Assignees
Labels
Type
Projects
Status