Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2007-07-27 07:31:17

On Jul 26, 2007, at 6:03 PM, Daniël Mantione wrote:

>> This may be a naieve question, but why would binary compatibility be
>> required? Is mpi.pas a source file or a compiled file?
> It is a source file, containing a Pascal unit. It contains
> declarations
> like:
> function mpi_init(var argc:longint;var
> argv:PPchar):longint;cdecl;external 'libmpi' name 'MPI_Init';
> Now, if you change the data structures in the .h file, of course the
> data structures in the Pascal unit don't automatically change.

Did we [unintentionally] do that? I'm only aware of things that we
*added* to mpi.h (e.g., as more constants became supported over time).

>> If it's source, what did we do to break it between versions?
> Free Pascal comes with a .h converter. This isn't perfect (macros
> are hard
> to machine translate into another language), but with some manual
> assistance, someone can generate a Pascal import for a C library
> reasonably quickly. It is therefore possible to convert the mpi.h
> shipped
> with OpenMPI.


> So, you didn't break a mpi.pas as it doesn't exist, I just made the
> observation that as it isn't possible to use a program compiled
> against
> openmpi 1.1 on 1.2, and as a Pascal unit would depend on the binary
> interface remaining compatible, it ain't feasible to publish an
> mpi.pas,
> as it would be outdated in no time.

If it's solely dependent upon mpi.h, I'm not sure that this is the case.

> However, perhaps we could contribute one and have it shipped with
> openmpi?
> It would at least prevent the confusion which mpi.pas belongs to which
> openmpi.

The Open MPI Project is always willing to talk to those who wish to
contribute code. :-) See the "contribute" page on the web site:

I do not know how the rest of the group would feel about including
unofficial Pascal bindings in Open MPI, though.

Jeff Squyres
Cisco Systems