I have started a fresh one here:
https://wiki.haskell.org/Foreign_Function_Interface_(FFI)
Very helpful thank you. We NEED people to invest effort in good user guides.
Do also include info from
https://wiki.haskell.org/GHC/Using_the_FFI
as well as
Once you’ve absorbed them both, kill them off and replace with forwarding pointers. Or better still overwrite one or the other with your new page (people may have bookmarked the old links).
What we don’t want is lots of alternative pages, that don’t refer to each other, with contradictory info.
Simon
From: Sylvain Henry [mailto:hsyl20@gmail.com]
Sent: 13 February 2015 18:28
To: Simon Peyton Jones
Cc: Francesco Mazzoli; Manuel Chakravarty; ghc-devs@haskell.org; Geoffrey Mainland (mainland@cs.drexel.edu)
Subject: Re: [Haskell-cafe] Anonymous FFI calls
Hi,
The FFI pages on the wiki are not really in a good shape in my opinion (especially for newcomers).
I have started a fresh one here:
https://wiki.haskell.org/Foreign_Function_Interface_(FFI)
This is just the first draft. I will improve it, probably split it in several pages and merge information from other pages, especially pages linked on
https://wiki.haskell.org/FFI
Sylvain
2015-02-12 10:02 GMT+01:00 Simon Peyton Jones <simonpj@microsoft.com>:
| Thanks to everyone who replied!
|
| It seems like that through a combination of facilities like `libffi'
| and `addTopDecls' I can do everything that I wanted to do.
Great. But please, please, do write up what you learned on the FFI wiki page
https://wiki.haskell.org/GHC/Using_the_FFI
Simon
| -----Original Message-----
| From: Francesco Mazzoli [mailto:f@mazzo.li]
| Sent: 12 February 2015 09:00
| To: Simon Peyton Jones
| Cc: Michael Sloan; Manuel Chakravarty; Geoffrey Mainland
| (mainland@cs.drexel.edu); ghc-devs@haskell.org; haskell
| Subject: Re: [Haskell-cafe] Anonymous FFI calls
|
| Thanks to everyone who replied!
|
| It seems like that through a combination of facilities like `libffi'
| and `addTopDecls' I can do everything that I wanted to do.
|
| I still want to take a shot at implementing anonymous FFI calls, since
| IMHO I think they are a very small but useful addition to the
| language.
|
| Francesco
|
| On 12 February 2015 at 09:29, Simon Peyton Jones <simonpj@microsoft.com>
| wrote:
| > | 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@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@haskell.org] On Behalf
| Of
| > | > | Michael Sloan
| > | > | Sent: 11 February 2015 23:19
| > | > | To: Francesco Mazzoli
| > | > | Cc: ghc-devs@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@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@haskell.org
| > | > | > http://www.haskell.org/mailman/listinfo/haskell-cafe
| > | > | _______________________________________________
| > | > | ghc-devs mailing list
| > | > | ghc-devs@haskell.org
| > | > | http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs