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.

Attachment: signature.asc
Description: PGP signature

Reply via email to