Hi Simon, Thanks for the reply.
The work on accelerated is indeed relevant: in accelerate-cuda, CUDA kernels (which are composed of C code) get compiled to a binary file invoking an external compiler, and then (this is the relevant part) the compiled binary is executed used the CUDA library. The problem is that while CUDA kernels are executable through a libraries, compiled functions using the C calling convention aren't. So I can't really call compiled C functions like accelerate-cuda invokes CUDA kernels. Relatedly, if I have some function pointer known at runtime that addresses a C function that takes some arguments, I have no way to invoke it from Haskell, since all FFI imports must be declared at compile-time, and I don't know the address of the symbol I want to execute at compile time. I am exploring the possibility of adding such capabilities to GHC, since as I mentioned I don't see any particular roadblock. Francesco On 11 February 2015 at 11:40, Simon Peyton Jones <[email protected]> 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:[email protected]] On Behalf > | Of Francesco Mazzoli > | Sent: 11 February 2015 10:26 > | To: haskell; [email protected] > | 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 > | [email protected] > | http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ ghc-devs mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-devs
