FFI progress

Simon Peyton-Jones simonpj at microsoft.com
Fri Apr 6 12:04:32 EDT 2001


Manuel

| The FFI discussion seems to be completely stalled.  Would 
| you, as our Tsar, like to summarise the state of play, and 
| re-invigorate it? 

There was a bit of discussion, which led, I think to a simplification
of the library stuff.  But we don't have a summary (even informal)
of the current state of play, and that's beginning to be a problem here
because we're about to implement the .NET FFI for GHC.

Might I suggest 
	http://research.microsoft.com/~simonpj/ffi.html
as the basis for a state-of-play-summary.  You can grab the source
and modify it as you see fit.

There's one particular issue we havn't discussed.  For Java and .NET
we want to call static methods, dynamic methods, and constructors.
We already have
	foreign import static
	foreign import dynamic

but 'new' is different again.  The obvious place for it is in the
language-specific
string
	foreign import static "new foo(int x)" foo :: Int -> IO Foo

It seems a bit odd to have static/dynamic *outside* but "new" inside the
language-specific string.  I suppose the justification is that 'new' is
really
a static method with a funny way to call it.   Whereas the 'self'
parameter
on a dynamic call is treated specially.

So that's ok, but we should agree that's what we want.

Simon




More information about the FFI mailing list