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