[Haskell-cafe] hsffig issues (was: Suggestions for #defines with
FFI)
Dimitry Golubovsky
dimitry at golubovsky.org
Thu Jul 28 00:08:11 EDT 2005
John Goerzen wrote:
> Incidentally, I looked at hsffig. There were a couple issues with using
> it for this:
>
> 1) It didn't declare types for the imported constants, so Haddock
> wouldn't generate a list over it.
I never tried to make hsffig output documentable: the whole idea is just
to write "import FOO_H" in Haskell as one would write "#include <foo.h>"
in C.
> 2) It included all sorts of other #defined items, from other headers
> (stdio.h maybe), making it unsuitable to re-export directly to the user.
> (I'd have to re-key everything anyway)
I mentioned this in the Tutorial: hsffig gives the Haskell compiler the
same look at information about the library to import as the C compiler
would have. It is hard to separate such things: your header file that
you include may include ten other headers, five of them related to the
library, and the rest from /usr/include
And you do not need to reexport because wherever you need the bindings,
you just import them there. You still have to have some library
interface layer in your application, but you do not focus on type
signatures of foreign functions.
> 3) It tried to list some of the GCC internal conditionals as constants,
> making the .hsc not compile unless I manually removed some of them.
Can you provide an example of that? With (almost antique) egcs-2.91.66 I
never had anything like this. What was in the .hsc file and what was the
compilation error?
> I really like the idea, though. Autodetecting these is great, since
> they could vary somewhat from implementation to implementation.
Exactly: the Haskell compiler gets the same information (e. g. from
features.h) as the C compiler got when compiling the library.
Dimitry Golubovsky
Middletown, CT
More information about the Haskell-Cafe
mailing list