[Haskell-cafe] Anonymous FFI calls
Luite Stegeman
stegeman at gmail.com
Thu Feb 12 02:22:01 UTC 2015
Another example, similar to Manuel's work but for GHCJS JavaScriptFFI
is ghcjs-ffiqq: https://github.com/ghcjs/ghcjs-ffiqq . There is some
automatic marshalling of arguments and results using the ToJSRef /
FromJSRef typeclasses. I'm working on integrating the improvements in
these typeclasses back into ghcjs-base. The quasiquoter might be moved
there too, but I'm not sure yet.
The (ugly) implementation is here:
https://github.com/ghcjs/ghcjs-ffiqq/blob/master/src/GHCJS/Foreign/QQ.hs
Adapting to ccall imports should be straightforward, but implementing
the full functionality would require a bit more stub code generation,
since this code depends on GHCJS' native support for inline foreign
import argument placeholders ($1, $2, $3 etc) placeholders.
luite
On Wed, Feb 11, 2015 at 11:40 PM, Simon Peyton Jones
<simonpj at microsoft.com> wrote:
> This may be relevant. http://www.cse.unsw.edu.au/~chak/papers/CMCK14.html
> Manuel gave a talk about something like this at the Haskell Symposium.
>
> Simon
>
> | -----Original Message-----
> | From: Haskell-Cafe [mailto:haskell-cafe-bounces at haskell.org] On Behalf
> | Of Francesco Mazzoli
> | Sent: 11 February 2015 10:26
> | To: haskell; ghc-devs at haskell.org
> | Subject: [Haskell-cafe] Anonymous FFI calls
> |
> | 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 ghc-devs
mailing list