I put together a pull request that does the following:

1) Make all MPI-3.0 obsoleted interfaces conditionally built. They will
still show up in mpi.h (though I can remove them from there with some
configury magic) but will either be #if 0'd out or marked with
__attribute__((__error__)). The later is only available with gcc and
should give a helpful error message if the offending
functions/interfaces are used.

2) Add an option (--enable-mpi1-compat) to control building the
obsolute APIs. The new default is --disable-mpi1-compat. The goal is to
make this option available for the entirety of Open MPI v4.x.x and
remove it and the associated obsolete code in Open MPI v5.0.0.


How does the community feel about this change? Most of the obsolete
functions are trivial to swap out. The only exception is the LB/UB
markers but I intend to add examples of how to modernize to the FAQ.

Why make this change?

1) We are releasing a new major version. This change can only happen at
a major version.

2) These functions were deprecated along the way in MPI-2.x. They were
all removed in MPI-3.0 (2012). I think 6 years with a deprecated
warning is long enough. I would prefer to axe them now but having an
option to re-enable them for a major release series is a good
compromise option.


The PR can be found @ https://github.com/open-mpi/ompi/pull/5127


Open MPI is MPI-3.0 clean now. Most of MTT is as well. I intend to work
through MTT to remove any tests using obsolete functions. The one
exception to this will be the IBM test suite which will keep test to
conditionally check the obsolete functions if they exist (for the
benefit of v3.x.x and v4.x.x).

-Nathan
_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/devel

Reply via email to