Coming back to the MPI ABI discussion (which dates back from a long time ago though), just one additional question (to which MPI implementers certainly have an interesting opinion):
Why don't we use the fortran interface instead of the C interface. Different C interfaces for MPI are likely incompatible because the type behind the MPI_Group etc. might all be different. Same goes for the named constants. In the fortran interface however the type's are always guaranteed to be int's. Thus AFAICT if my app uses the fortran interface of MPI I can link my app with a dynamic library (say libmpi.so) which I can make point to either e.g. an MPICH implementation or POE. right? toon