[Haskell-cafe] Anonymous FFI calls

Michael Sloan mgsloan at gmail.com
Wed Feb 11 23:18:31 UTC 2015


It seems like addTopDecls[1] will able to help here.  Unfortunately,
the function is not well documented and not very discoverable because
it's only exported by Language.Haskell.TH.

The documentation doesn't mention that it can only be used to create
new top level functions and FFI imports[2].  I think that adding FFI
imports was the main motivation for implementing it.   In the past
I've wanted to generate instances via this function, but unfortunately
it's not implemented..

Hope that helps!
-Michael

[1] http://hackage.haskell.org/package/template-haskell-2.9.0.0/docs/Language-Haskell-TH-Syntax.html#v:addTopDecls

[2] https://github.com/ghc/ghc/blob/1d982ba10f590828b78eba992e73315dee33f78a/compiler/typecheck/TcSplice.hs#L818

On Wed, Feb 11, 2015 at 2:26 AM, Francesco Mazzoli <f at mazzo.li> wrote:
> Hi,
>
> I am in a situation where it would be very useful to call C functions
> without an explicit FFI import.  For example, I'd like to be able to do
>
>     (foreign import ccall "cadd" :: CInt -> CInt -> CInt) 1 2
>
> instead of declaring the foreign import explicitely at the top level.
>
> Is there a way to do this or to achieve similar results in some other
> way?
>
> If not, I imagine it would be easy to implement such a facility in GHC,
> given that the code implementing calling to C functions must already be
> present to implement "proper" FFI imports.  I think such an addition
> would be useful in many cases.
>
> Thanks,
> Francesco
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the ghc-devs mailing list