[Haskell-cafe] Re: Mixing C and Haskell code in the same file
Simon Marlow
marlowsd at gmail.com
Thu Jul 23 07:13:14 EDT 2009
On 12/07/2009 19:26, Bulat Ziganshin wrote:
> Hello Maurício,
>
> Sunday, July 12, 2009, 9:11:53 PM, you wrote:
>
>> I did read that. It says I can use "#def" to insert
>> a C definition, but there are no examples of use, and I
>> could not find one.
>
> #def inline int signof(int x) {return x<0?-1:x>0?1:0;}
> foreign import ccall safe ""
> signof :: CInt -> CInt
>
> main = print (signof 33)
>
> compilation:
> hsc2hs tabi.hsc
> ghc --make tabi.hs tabi_hsc.c
That use of "inline" doesn't have any effect since GHC 6.10, because
even when using -fvia-C we're not #including the header file in the
generated C code.
Also that note in the docs about not using #def in library code is
outdated: it should be safe to use #def in libraries now. I've fixed
the docs.
Cheers,
Simon
More information about the Haskell-Cafe
mailing list