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
differently.)
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...)