Ballot 4 proposal: MPI::COMM_WORLD and MPI::COMM_SELF should be const
This is not already on Bill's errata page. Proposal: Make MPI::COMM_WORLD and MPI::COMM_SELF be "const". Change MPI-2:B.2 p345:18 from // Type: MPI::Intracomm to // Type: const MPI::Intracomm Rationale: The COMM_WORLD and COMM_SELF C++ handles were erroneously not marked "const" because of the incorrect INOUT MPI handle parameter designation of the MPI_COMM_SET_ERRHANDLER, MPI_COMM_SET_ATTR, and MPI_COMM_SET_ERRHANDLER functions. This caused the C++ bindings methods to not be const, resulting in compile errors if COMM_WORLD was const and you invoked any of the methods listed above (e.g., MPI::COMM_WORLD.Set_errhandler(...)). The proper solution is to have all the MPI handle arguments be IN instead of INOUT (covered in another proposal) and therefore have the Set_* functions be const (also covered that other proposal). Once that solution is in place, COMM_WORLD and COMM_SELF should be marked as "const". Not that many other predefined MPI C++ handles are already const; some erroneously had their "const" designation removed in ballot 2 -- a different proposal seeks to restore their "const" status. NOTE: This proposal depends on the "change some INOUT parameters to IN" proposal. -- Jeff Squyres Cisco Systems
participants (1)
-
unknown@example.com