Re: more void* vs. char*

Rolf Rabenseifner (Rabenseifner@RUS.Uni-Stuttgart.DE)
Fri, 15 Mar 1996 15:52:25 +0100 (MEZ)

Not forgetting the goals
- defining an language independent interface to
- allowing portable message passing applications
I must say, that the discussion
(void *) <--> (char *) <--> (char * NULL-terminated)
is not primary.

The first question is, which is the formal type of "info" and which
are the allowed values.
And the second question is about the language binding.

The binary decisions would be

1) formal type of "info" is defined --versus-- undefined, i.e. imple-
mentation dependent

Arguments for defined: The application can be written portable,
and therefore compiled for each MPI implementation,
and only the values are implementation dependent and must be
choosen correctly at runtime

2) If we decide 'defined' then which type?
string --versus-- handle --versus-- integer --versus-- ....

(with the meaning
string = sequence of characters with a defined length)

To have the possibility of language bindings for each language
and a appropriate range of values, I think the decision is binary:
string --versus-- handle

Argument against 'handle': functionally the same can be made by
strings, but one need to additional functions to generate and free
the handle.

3) The last decision is about the values itself
-- I think 'implementation defined' is voted by all.

4) Independent of this discussion we must decide the language binding
for strings as IN-argument:
C: char *, NULL terminated --versus-- two arguments
char * string,
int string_length
Fortran: CHARACTER*(*)

Argument for 'NULL terminated': it is more usual.

For string language binding examples
- as IN: see also MPI_SPAWN, command_line
MPI_CONNECT, MPI_ACCEPT,
- as OUT: see also MPI_GET_PROCESSOR_NAME, MPI_ERROR_STRING

Rolf


Rolf Rabenseifner (Computer Center )
Rechenzentrum Universitaet Stuttgart (University of Stuttgart)
Allmandring 30 Phone: ++49 711 6855530
D-70550 Stuttgart 80 FAX: ++49 711 6787626
Germany rabenseifner@rus.uni-stuttgart.de