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.
Gotcha.
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:
http://www.open-mpi.org/community/contribute/
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