[Haskell-cafe] Re: binding to C libraries on Windoww

Andrew Coppin andrewcoppin at btinternet.com
Sun Dec 6 08:25:27 EST 2009

Stephen Tetley wrote:
> Hi John
> Fair points - but aren't you always going to 'need' at least MinGW?
> (for some degree of 'need' of course, I use it quite a bit though
> prefer Cygwin, I suppose Andrew C. would care not to use either).

I guess there's a difference in culture here.

On Unix, it is usual to distribute programs as source, and build from 
source. (I guess in part because each one of the 12,657,234 different 
Unix variants is slightly different, and the program needs to work 

On Windows, it is usual to distribute everything as compiled binaries. 
(Indeed, for most commercial software, the sources simply aren't 
available at all.) And users get a binary program and binary DLLs or 
whatever. Developers get a binary DLL and whatever header files or 
import libraries are necessary to use it.

> GHC brings with it gcc and ld, ar ... but not much else.

If I'm understanding this correctly, John is saying that GCC requires a 
different form of import library before you can access a DLL. For 
binary-only DLLs, this presumably won't be available. Hence the 
(abnormal) requirement to build the whole library from source, rather 
than just drop in a DLL and be done with it.

Unix *expects* you to build everything from source, and so there are 
standard toolchains which are almost always available, and standard 
installation locations and so on and so forth. Windows does *not* expect 
you to be building things from source, and so is less-well set up in 
that regard.

I don't suppose there's any danger of GHC ever switching to a native 
Win32 toolchain? (I don't actually know if one even exists with a 
sufficiently liberal license...)

More information about the Haskell-Cafe mailing list