[Haskell-cafe] Anonymous FFI calls
Simon Peyton Jones
simonpj at microsoft.com
Thu Feb 12 08:29:29 UTC 2015
| Also, I meant to say that addTopDecls is only exported by
| "Language.Haskell.TH.Syntax". While this is a digression, there are a
| few other handy functions that are oddly left out of
| "Language.Haskell.TH": addDependentFile, addModFinalizer, and possibly
| more.
That does seem wrong. Do make a patch!
SIMon
|
| -Michael
|
| On Wed, Feb 11, 2015 at 3:25 PM, Simon Peyton Jones
| <simonpj at microsoft.com> wrote:
| > I would LOVE someone to improve the documentation for addTopDecls.
| Manuel Chakravarty and Geoff Mainland were responsible for the
| implementation.
| >
| > Simon
| >
| > | -----Original Message-----
| > | From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of
| > | Michael Sloan
| > | Sent: 11 February 2015 23:19
| > | To: Francesco Mazzoli
| > | Cc: ghc-devs at haskell.org; haskell
| > | Subject: Re: [Haskell-cafe] Anonymous FFI calls
| > |
| > | 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/1d982ba10f590828b78eba992e73315dee33
| > | f78a/
| > | 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
| > | _______________________________________________
| > | ghc-devs mailing list
| > | ghc-devs at haskell.org
| > | http://www.haskell.org/mailman/listinfo/ghc-devs
More information about the Haskell-Cafe
mailing list