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
> 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
> 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
> 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
> 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
> It would at least prevent the confusion which mpi.pas belongs to which
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.