[Mpi-forum] Reserved MPI_ prefix & namespace in C and Fortran

Rolf Rabenseifner rabenseifner at hlrs.de
Fri Aug 24 14:57:35 CDT 2012

Dear all,

A few comments:

This a MPI-2 errata based on an existing inconsistency.
Therefore we do not want to rewrite the three sections.

We have three sections about the three languages.
Therefore we can use different wording appropriate to each language.

We do not discuss more than existing MPI_ in Fortran or C,
and MPI in C++.
_MPI is definitely an MPI-next topic, i.e. not part of MPI-2.

It is of course allowed to do it better in MPI-next.

For the time being, i.e., MPI-2 errata that should be fixed before
MPI-3 is done and therefore automatically in MPI-3.

The current proposal is simple:

>   "Programs must not declare
       names (identifiers), e.g., for variables, functions,
       constants, macros, types, or namespaces,
>    beginning with the prefix MPI_."

>   "Programs must not declare
       names, e.g., for variables, parameters, functions,
       derived types, or abstract interfaces,
>    beginning with the prefix MPI_.

>   "Programs must not declare
       names (identifiers), e.g., for variables, functions,
       constants, macros, types,
>    in the namespace MPI."

These sentences change only the middle part of the existing 
sentences and fit into the sections.

If you want to provide a better wording,
then please provide the full sentence and check whether
you need more to change in the sections.

We need to come to a consensus about the wording.

And the sentence on C must also fir for C++ programmers
using the MPI C interface.

The reservation of MPI:: in MPI-3.0 is already described
in the sections about the removal of the C++ MPI interface.

Therefore, the proposed wording should be enough.



----- Original Message -----
> From: "N.M. Maclaren" <nmm1 at cam.ac.uk>
> To: "Main MPI Forum mailing list" <mpi-forum at lists.mpi-forum.org>
> Sent: Friday, August 24, 2012 7:39:04 PM
> Subject: Re: [Mpi-forum] Reserved MPI_ prefix & namespace in C and Fortran
> On Aug 24 2012, Jeremiah Willcock wrote:
> >
> >What about wording to the effect of 'the name "MPI" and names
> >beginning
> >with "MPI_" are reserved to the MPI implementation, and names
> >beginning
> >with "PMPI_" are reserved to the MPI implementation when used as
> >global-scope function names'; that suggests that they are reserved
> >for all
> >purposes (and thus can be used as macro names by the implementation,
> >etc.)? That also avoids needing to enumerate all of the cases (and
> >there
> >are a few missing on any of the lists we've been looking at so far)
> >and
> >looks more like the kind of wording that is in the language
> >standards.
> I was copying the wording in the standards fairly closely; both
> Fortran
> and C use the term 'entity' to mean 'more or less anything you can
> declare'. Using the terminology "reserved to the MPI implementation"
> rather than forbidding their declaration would work equally well.
> However, the term 'global-scope function names' will NOT fly, as it
> makes little sense in either C or Fortran and doesn't cover external
> variables (in C) or half a dozen classes of external name in Fortran,
> including COMMON blocks, modules and BIND(C) variables in modules.
> Also, in Fortran, functions are only one of three classes of
> procedure.
> >You might want to also reserve "_MPI" for all purposes as well (even
> >though that name is intended to be reserved to the compiler, not a
> >library) because of the suggestion in the past that some preprocessor
> >symbol be defined when compiling with MPI so that applications can
> >detect
> >it; _MPI follows the same pattern as _OMP and already seems to be
> >used by
> >some applications.
> Grrk. Please don't use OpenMP as a model - the MPI standard is of MUCH
> higher quality, and doesn't conflict with the language standards more
> than it has to. You could do so, but it makes little sense. Any
> program
> that uses the name _MPI in either C or Fortran is already
> non-conforming
> (i.e. illegal) and Fortran REQUIRES it to be flagged as erroneous by
> the
> compiler.
> You could request compiler implementors not to use the name _MPI for
> other purposes, but that's about as far as you can go while remaining
> in touch with ppracticality.
> Regards,
> Nick Maclaren.
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum

Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at hlrs.de
High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530
University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832
Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner
Nobelstr. 19, D-70550 Stuttgart, Germany . (Office: Allmandring 30)

More information about the mpi-forum mailing list