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

Reply via email to