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