George Bosilca <bosi...@icl.utk.edu> writes: > Now we can argue if DOUBLE PRECISION in Fortran is a double in C. As these > languages are interoperable, and there is no explicit conversion function, > it is safe to assume this is the case. Thus, is seems to me absolutely > legal to provide the MPI-required support for DOUBLE PRECISION despite the > fact that Fortran support is not enabled.
Isn't that entirely dependent on the Fortran compiler? There is no universal requirement that there be a relationship between Fortran INTEGER and C int, for example. > Now taking a closer look at the op, I see nothing in the standard the would > require to provide the op if the corresponding language is not supported. > While it could be nice (as a convenience for the users and also because > there is no technical reason not to) to enable the loc op, on non native > datatypes, this is not mandatory. Thus, the current behavior exposed by > Open MPI is acceptable from the standard perspective. I believe the question is not whether it's standard-compliant to define the types when they are not supported (the OP's usage doesn't sound valid anyway because they are using the Fortran MPI datatypes to refer to C types). Rather, the question is: if those types are non-functional, can/should they be removed from the header. This, for example, allows a configure script to test whether those datatypes exist. Feature tests are far more reliable, accurate, and lower maintenance than platform/version tests. When a package defines macros/symbols that fail at run-time, it makes feature tests much more expensive. Even more so when cross-compiling, where run-time tests require batch submission. The fact is that if a package makes it impractical to test features, the end-user experience reflects poorly on that package and all of its dependencies (though which user support passes). It's the sort of thing that drives users and developers away from the platform. Since I don't think you can make the Fortran types reliable without access to a Fortran compiler, my suggestion would be remove the symbols when Fortran is not available.
signature.asc
Description: PGP signature