Cygwin & GHC

George Russell
Thu, 04 Apr 2002 19:29:46 +0200

Simon Peyton Jones wrote:
> I am therefore deeply reluctant to provide both GHC-for-mingw32
> and GHC-for-cygwin.   One build on Win32 is enough!   We ended
> up with a mingw32 basis because it meant we could make GHC=20
> completely self-contained -- no dependence on cygwin1.dll etc.
> This was *huge* step forward: GHC installs and runs with no problem
> on Windows now.
I agree about it being a huge step forward.  I do not think I would be 
in favour of undoing this and going back to having to install cygwin
(in the right version) to get GHC to run.
> 1.  GHC does not understand cygwin paths in the file names passed
> to it on the command line.
> 2.  GHC on Win32 does not come with a Posix library.  If we used a
> Cygwin basis, Posix would be easy because cygwin does all the hard work.
> 3.  I/O on Win32 is *blocking*.   A blocking input operation freezes all
> the
> other Haskell threads.
I am a little but not hugely bothered by (1) and (2), as they can all be worked
around in various ways.  The real problem is (3), since it means that not just
IO events but almost all events from the non-Haskell world cannot be waited on
without bringing the Haskell world to a halt.  Is it possible to do something
about (3) without switching back to Cygwin?