Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-03 Thread Magnus Therning
Duncan Coutts wrote:
 On Sat, 2008-02-02 at 22:33 +, Magnus Therning wrote:
 Duncan Coutts wrote:
 [..]
 Just so I'm sure I understand...
 Sure thing.

 Or are you just trying to link some C code statically into a haskell
 program, but it just so happens that this C code relies on being built
 with MS's C compiler rather than gcc.
 Yes, this is exactly it.  I mean, I could probably hack the incomplete
 mingw header files to add the functions I need, but I thought it'd be
 much easier to just use Microsoft's development environment.

 Perhaps you could clarify what it is you're trying to do (the end goal,
 just just the minutia) so we can see what feature it is that Cabal is
 missing that would help your situation. When we figure that out we can
 file a feature request so it is not forgotten.
 The end goal is to sneak Haskell into the work place ;-)

 What I'd really like to see is the ability to “drive” development
 completely from Haskell.  With that I mean to, just as on Linux, have a
 single cabal file that compiles the C code containing the wrappers while
 still having access to a complete development environment.  On Windows
 that means compiling C/C++ with MS's tool set.

 I hope that clarifies what goes on in my muddy mind a bit...
 
 Ok, so you could create a separate component to produce the .dll / .a
 from the C code but you'd prefer the convenience of being able to just:
 c-sources: blah.c
 and have them included in the project, but built using the MS C
 compiler.
 
 So I think we should file a feature request about building C sources
 using gcc/ms-c directly rather than going via ghc as that would give us
 the flexibility to use alternative C compilers.
 
 Perhaps you'd like to file it, otherwise I can.
 http://hackage.haskell.org/trac/hackage/

I raised ticket 229 for this issue.

/M

-- 
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnus@therning.org Jabber: magnus.therning@gmail.com
http://therning.org/magnus

What if I don't want to obey the laws? Do they throw me in jail with
the other bad monads?
 -- Daveman



signature.asc
Description: OpenPGP digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Duncan Coutts

On Fri, 2008-02-01 at 11:42 +, Magnus Therning wrote:
 Is it possible to get Cabal to use 'cl' (Microsoft's C/C++ compiler
 shipped with Visual Studio Express)?

The problem is to get GHC to use 'cl'. That's a longer term project that
GHC HQ are interested in. There's something about it on the GHC dev wiki
I think. Don't hold your breath.

 I've found the Wiki page on using Visual Studio to create a DLL, then
 convert it to a .a file so that GHC can consume it.  I'd rather skip
 using Visual Studio to build things and just ship a Cabalised package.

You can create .dlls without using VS of course, if that's what you're
trying to do.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Felix Martini
Magnus Therning wrote:
 Is it possible to get Cabal to use 'cl' (Microsoft's C/C++ compiler
 shipped with Visual Studio Express)?

Duncan Coutts wrote:
 The problem is to get GHC to use 'cl'. That's a longer term project that
 GHC HQ are interested in. There's something about it on the GHC dev wiki
 I think. Don't hold your breath.

When using the native code generator only foreign C code must be
compiled with a C compiler. Presently Cabal passes C sources that are
listed in the 'c-sources' field of a cabal file to GHC. It would be
nice to have a Cabal field to specify the compiler for C sources, say
'c-sources-compiler: msvc'. The default would still be gcc, but with a
Cabal flag the user would be able to change that to e.g. Sun's C
compiler.
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Duncan Coutts

On Sat, 2008-02-02 at 18:15 +0100, Felix Martini wrote:
 Magnus Therning wrote:
  Is it possible to get Cabal to use 'cl' (Microsoft's C/C++ compiler
  shipped with Visual Studio Express)?
 
 Duncan Coutts wrote:
  The problem is to get GHC to use 'cl'. That's a longer term project that
  GHC HQ are interested in. There's something about it on the GHC dev wiki
  I think. Don't hold your breath.
 
 When using the native code generator only foreign C code must be
 compiled with a C compiler. Presently Cabal passes C sources that are
 listed in the 'c-sources' field of a cabal file to GHC. It would be
 nice to have a Cabal field to specify the compiler for C sources, say
 'c-sources-compiler: msvc'. The default would still be gcc, but with a
 Cabal flag the user would be able to change that to e.g. Sun's C
 compiler.

It would be reasonable to use the system C compiler rather than ghc,
however we will have to do more work to find what extra include dirs get
used and have Cabal pass those.

Currently we pass the -package flags to ghc which ghc uses to look up
what include dirs those packages add, and then it calls the C compiler
with those extra include dirs. Cabal would have to do that itself.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Magnus Therning
Duncan Coutts wrote:
[..]
 It would be reasonable to use the system C compiler rather than ghc,
 however we will have to do more work to find what extra include dirs get
 used and have Cabal pass those.
 
 Currently we pass the -package flags to ghc which ghc uses to look up
 what include dirs those packages add, and then it calls the C compiler
 with those extra include dirs. Cabal would have to do that itself.

Well it sounds like I'll have to settle for a two-step build procedure
for the time being.  Luckily I managed to recall the existence of CMake
just today, so it seems I can make my Haskell-hacking-on-Windows
experience somewhat bearable...

/M

-- 
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnus@therning.org Jabber: magnus.therning@gmail.com
http://therning.org/magnus

What if I don't want to obey the laws? Do they throw me in jail with
the other bad monads?
 -- Daveman



signature.asc
Description: OpenPGP digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Duncan Coutts

On Sat, 2008-02-02 at 18:50 +, Magnus Therning wrote:
 Duncan Coutts wrote:
 [..]
  It would be reasonable to use the system C compiler rather than ghc,
  however we will have to do more work to find what extra include dirs get
  used and have Cabal pass those.
  
  Currently we pass the -package flags to ghc which ghc uses to look up
  what include dirs those packages add, and then it calls the C compiler
  with those extra include dirs. Cabal would have to do that itself.
 
 Well it sounds like I'll have to settle for a two-step build procedure
 for the time being.  Luckily I managed to recall the existence of CMake
 just today, so it seems I can make my Haskell-hacking-on-Windows
 experience somewhat bearable...

Just so I'm sure I understand...

So you're building a .dll using just C code and then you want to link
that in with a Haskell prog that uses that .dll. And it is essential
that the C code be built using MS's C compiler and not gcc.

Is that right? And you'd like to have the .dll built using Cabal rather
than having to hack an external C/Makefile.

Or are you just trying to link some C code statically into a haskell
program, but it just so happens that this C code relies on being built
with MS's C compiler rather than gcc.

Perhaps you could clarify what it is you're trying to do (the end goal,
just just the minutia) so we can see what feature it is that Cabal is
missing that would help your situation. When we figure that out we can
file a feature request so it is not forgotten.

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Magnus Therning
Duncan Coutts wrote:
[..]
 Just so I'm sure I understand...

Sure thing.

 Or are you just trying to link some C code statically into a haskell
 program, but it just so happens that this C code relies on being built
 with MS's C compiler rather than gcc.

Yes, this is exactly it.  I mean, I could probably hack the incomplete
mingw header files to add the functions I need, but I thought it'd be
much easier to just use Microsoft's development environment.

 Perhaps you could clarify what it is you're trying to do (the end goal,
 just just the minutia) so we can see what feature it is that Cabal is
 missing that would help your situation. When we figure that out we can
 file a feature request so it is not forgotten.

The end goal is to sneak Haskell into the work place ;-)

What I'd really like to see is the ability to “drive” development
completely from Haskell.  With that I mean to, just as on Linux, have a
single cabal file that compiles the C code containing the wrappers while
still having access to a complete development environment.  On Windows
that means compiling C/C++ with MS's tool set.

I hope that clarifies what goes on in my muddy mind a bit...

/M

-- 
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnus@therning.org Jabber: magnus.therning@gmail.com
http://therning.org/magnus

What if I don't want to obey the laws? Do they throw me in jail with
the other bad monads?
 -- Daveman



signature.asc
Description: OpenPGP digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-02 Thread Duncan Coutts

On Sat, 2008-02-02 at 22:33 +, Magnus Therning wrote:
 Duncan Coutts wrote:
 [..]
  Just so I'm sure I understand...
 
 Sure thing.
 
  Or are you just trying to link some C code statically into a haskell
  program, but it just so happens that this C code relies on being built
  with MS's C compiler rather than gcc.
 
 Yes, this is exactly it.  I mean, I could probably hack the incomplete
 mingw header files to add the functions I need, but I thought it'd be
 much easier to just use Microsoft's development environment.
 
  Perhaps you could clarify what it is you're trying to do (the end goal,
  just just the minutia) so we can see what feature it is that Cabal is
  missing that would help your situation. When we figure that out we can
  file a feature request so it is not forgotten.
 
 The end goal is to sneak Haskell into the work place ;-)
 
 What I'd really like to see is the ability to “drive” development
 completely from Haskell.  With that I mean to, just as on Linux, have a
 single cabal file that compiles the C code containing the wrappers while
 still having access to a complete development environment.  On Windows
 that means compiling C/C++ with MS's tool set.
 
 I hope that clarifies what goes on in my muddy mind a bit...

Ok, so you could create a separate component to produce the .dll / .a
from the C code but you'd prefer the convenience of being able to just:
c-sources: blah.c
and have them included in the project, but built using the MS C
compiler.

So I think we should file a feature request about building C sources
using gcc/ms-c directly rather than going via ghc as that would give us
the flexibility to use alternative C compilers.

Perhaps you'd like to file it, otherwise I can.
http://hackage.haskell.org/trac/hackage/

Duncan

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Cabal, GHC, FFI and Visual Studio on Windows

2008-02-01 Thread Magnus Therning
Is it possible to get Cabal to use 'cl' (Microsoft's C/C++ compiler
shipped with Visual Studio Express)?

I've found the Wiki page on using Visual Studio to create a DLL, then
convert it to a .a file so that GHC can consume it.  I'd rather skip
using Visual Studio to build things and just ship a Cabalised package.

/M

-- 
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnus@therning.org Jabber: magnus.therning@gmail.com
http://therning.org/magnus

What if I don't want to obey the laws? Do they throw me in jail with
the other bad monads?
 -- Daveman



signature.asc
Description: OpenPGP digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe