[Haskell-cafe] FunPtr error?

Ryan Ingram ryani.spam at gmail.com
Tue Jun 10 14:18:13 EDT 2008


I'm not super experienced with the FFI (foreign function interface); I
only used C types that you can get from #include <HsFFI.h>, like
Word32.

You might need to make Sigval an instance of Storable, or do some
magic with ForeignPtrs.  Good luck! :)

  -- ryan


On 6/9/08, Galchin, Vasili <vigalchin at gmail.com> wrote:
> I have tried various things to no avail ....
>
> vigalchin at ubuntu:~/FTP/Haskell/unix-2.2.0.0/tests/timer$
> runhaskell Setup.lhs build
> Preprocessing executables for Test-1.0...
> Building Test-1.0...
> [1 of 1] Compiling Main             ( ./timer.hs,
> dist/build/timer/timer-tmp/Main.o )
>
> ./timer.hs:22:0:
>     Unacceptable argument type in foreign declaration: Sigval
>     When checking declaration:
>         foreign import ccall safe "wrapper" mkNotify
>           :: Notify -> IO (FunPtr Notify)
>
> => here is my Sigval def
>
> data Sigval = SivalInt Int | SivalPtr (Ptr Char)
>
> I did a find/grep for "Unacceptable argument" in the ghc compiler source and
> assuming no typo I didn't find. ??
>
> Thanks.
>
> Kind regards, Vasili
>
>
>
>
> On Mon, Jun 9, 2008 at 11:25 PM, Judah Jacobson <judah.jacobson at gmail.com>
> wrote:
>
> > 2008/6/9 Galchin, Vasili <vigalchin at gmail.com>:
> >
> > > Ryan,
> > >
> > >      I tried but the compiler didn't seem to like the keyword "import":
> > >
> > >
> vigalchin at ubuntu:~/FTP/Haskell/unix-2.2.0.0/tests/timer$
> runhaskell
> > > Setup.lhs build
> > > Preprocessing executables for Test-1.0...
> > > Building Test-1.0...
> > > [1 of 1] Compiling Main             ( ./timer.hs,
> > > dist/build/timer/timer-tmp/Main.o )
> > >
> > > ./timer.hs:29:8: parse error on input `import'
> > >
> >
> > Hi Vasili,
> >
> > To fix that error, you probably just need to add the line "Extensions:
> > ForeignFunctionInterface" to the .cabal file.   (That is the
> > equivalent of calling ghc by itself with the command-line arguments
> > -fffi or -XForeignFunctionInterface.)
> >
> > Hope that helps,
> > -Judah
> >
>
>


More information about the Haskell-Cafe mailing list