FIXED IT!!!  The problem with charm.hs and its FFI dependency charm.c is that 
both want to produce an intermediary charm.o file. Solution: rename charm.hs to 
hscharm.hs.

Would you (or anyone else) care to update the tutorials on the Haskell Wiki?  
As someone wrote below:
While the tutorials at 
HaskellWiki<http://www.haskell.org/haskellwiki/FFI_complete_examples> are 
helpful, they're outdated. Argh!

It would be great if someone was public-spirited enough to fix this. The root 
page is here
                http://haskell.org/haskellwiki/GHC/Using_the_FFI
which in turn links to the "complete examples" page mentioned above.

The 
docs<http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#glasgow-foreign-headers>
 say that -#include pragmas no longer work, but fail to explain how to load 
code without them. Suffice to say I have no recourse but trial and error."

Ah, now that is a GHC documentation question.  Can you tell us what should the 
docs should say instead?  Then we can fix the docs.

Simon



From: [email protected] 
[mailto:[email protected]] On Behalf Of Andrew Pennebaker
Sent: 14 July 2011 07:57
To: Jason Dagit
Cc: Haskell Cafe
Subject: Re: [Haskell-cafe] FFI for a beginner

FIXED IT!!!

The problem with charm.hs and its FFI dependency charm.c is that both want to 
produce an intermediary charm.o file.

Solution: rename charm.hs to hscharm.hs.

Cheers,

Andrew Pennebaker
www.yellosoft.us<http://www.yellosoft.us>


On Tue, Apr 12, 2011 at 5:55 PM, Andrew Pennebaker 
<[email protected]<mailto:[email protected]>> wrote:
hsc2hs and c2hs are good suggestions, and some of the tutorials I'm following 
use them.

But 1) Many Haskell FFI tutorials don't require them, so they only seem to 
help, or only help in older versions of GHC.

And 2) When I did compile using c2hs, it just produced the same file, but with 
filler comments like {#- LINE 13 #-}. And they still refused to compile for the 
same reason:

ld: duplicate symbol _Charm_getWidth_info in charm.o and charm.o

Cheers,

Andrew Pennebaker
www.yellosoft.us<http://www.yellosoft.us>

On Sat, Apr 9, 2011 at 9:50 PM, Jason Dagit 
<[email protected]<mailto:[email protected]>> wrote:

I don't know how to make ghc load them without using either hsc2hs or c2hs. 
I've had better experiences with hsc, but your mileage may vary.
On Apr 8, 2011 3:34 AM, "Andrew Pennebaker" 
<[email protected]<mailto:[email protected]>> wrote:

ncurses is proving too difficult to setup, so I'm working on a new library 
called charm. The C code works by itself, but I can't compile a Haskell wrapper 
for it. While the tutorials at 
HaskellWiki<http://www.haskell.org/haskellwiki/FFI_complete_examples> are 
helpful, they're outdated. Argh! The 
docs<http://www.haskell.org/ghc/docs/latest/html/users_guide/ffi-ghc.html#glasgow-foreign-headers>
 say that -#include pragmas no longer work, but fail to explain how to load 
code without them. Suffice to say I have no recourse but trial and error.

GitHub: charm<https://github.com/mcandre/charm> and 
hscharm<https://github.com/mcandre/hscharm>

$ make
cp /usr/include/charm.c .
ghc --make -fforce-recomp -o hellocharm hellocharm.hs charm.hs charm.c 
-I/usr/include -dylib-install-name /usr/lib/libcharm.dynlib
[1 of 2] Compiling Charm            ( charm.hs, charm.o )
[2 of 2] Compiling Main             ( hellocharm.hs, hellocharm.o )
Linking hellocharm ...
ld: duplicate symbol _Charm_getWidth_info in charm.o and charm.o
collect2: ld returned 1 exit status
make: *** [hellocharm] Error 1

Cheers,

Andrew Pennebaker
www.yellosoft.us<http://www.yellosoft.us>

_______________________________________________
Haskell-Cafe mailing list
[email protected]<mailto:[email protected]>
http://www.haskell.org/mailman/listinfo/haskell-cafe


_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to