scope of header files

Simon Marlow simonmarhaskell at
Tue Mar 11 17:47:37 EDT 2008

John Meacham wrote:
> On Thu, Mar 06, 2008 at 12:23:35AM +0000, Duncan Coutts wrote:
>> Which is really annoying :-) I'd like greater control over it, in
>> particular a way to limit headers to package scope so that dependent
>> code does not need the headers.
> Ideally there would be no need for headers at all. Everything needed is
> inherently in the foreign declaration. If anything, the headers should
> just be used as a sanity check, not actually to affect the generated
> code. It would be nice if ghc just stopped relying on them and ignored
> them altogether.

Yeah, I'd like -fvia-C to be headerless.  We talked about it a while 
back (on the haskell-prime list I think).  The main issue is that GHC 
would have to generate prototypes based on the FFI declaration, and 
since it can't guarantee to generate a prototype that is exactly the 
same as the C prototype given in the header file (e.g. it doesn't know 
about const), we would have to ensure that there really are no other 
prototypes in scope, to prevent errors from the C compiler.

One reason I want to do this is that it would make via-C compilation 
less fragile, particularly in terms of getting the .cabal file right. 
Via-C compilation is about to get a lot less common - in 6.10 it'll only 
be used for bootstrapping, so we don't want a significant fraction of 
libraries fail to work when bootstrapped via C  due to missing 
include-files declarations.


More information about the Glasgow-haskell-users mailing list