Open MPI logo

Open MPI User's Mailing List Archives

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

From: Daniël Mantione (daniel.mantione_at_[hidden])
Date: 2007-07-26 18:03:38


On Thu, 26 Jul 2007, Jeff Squyres wrote:

> On Jul 26, 2007, at 3:18 PM, Daniël Mantione wrote:
>
> > Problematic is the very poor job the openmpi team does at binary
> > backwards
> > compatibility, applications broke between 1.0 and 1.1, and again
> > between
> > 1.1 and 1.2. With such breakage, it is next to impossible to
> > maintain an
> > mpi.pas.
>
> 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.

> 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.

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.

Daniël Mantione