[Haskell-cafe] hsffig and duplicate typedef declarations

Don Stewart dons at galois.com
Thu May 14 01:12:46 EDT 2009

> At 9:59 PM -0700 5/13/09, Don Stewart wrote:
>> heringtonlacey:
>>>  I have a large body of C/C++ code at work that I'd like to be able 
>>> to  access from Haskell via FFI.  Because the interface to this code 
>>> is  broad, hsffig would seem to be ideal for the task.
>>>  I've run across one serious hitch, though.  The existing #include file
>>>  graph is complicated and ends up declaring some typedefs multiple times
>>>  (albeit in consistent ways).  While gcc (for example) rejects such
>>>  practice, the Windows C compiler we're using accepts it. Does anyone know
>>>  how feasible it would be to get hsffig to accept such practice as 
>>> well?  I've started looking at the hsffig code (and discovered that 
>>> the C
>>>  grammar hsffig uses seems to get confused by duplicate typedefs), but
>>>  thought I'd ask the list in parallel with my further study.
>> Have you looked at c2hs? (I'm not sure how familiar people are with
>> hsffig, but Dimitry Golubovsky can probably comment)
>> -- Don
> Yes, I started this journey with c2hs.  Then I moved to hsc2hs, which  
> appeared to be a "standardized" version of the same approach.  But my  
> interface consists of hundreds (maybe thousands) of #defines, structs, 
> typedefs, etc., so I quickly tired of the boilerplate wrapping code, 
> modest as it is.

hsc2hs is much simpler than c2hs. In particular, it processes the header
files (unlike hsc2hs) to work out the appropriate type.

I'd be interesting to hear how you go with hsffig (and you should
contact the author!).

-- Don

More information about the Haskell-Cafe mailing list