Getting the Glasgow Haskell Compiler (GHC) to run on Windows platforms can be a bit of a trying experience. It should be much easier now than in the past, since all the software required to build and use GHC is included in the InstallShield.
An installation of GHC requires about 70M of disk space (which can be reduced by choosing a “compact” installation). To run GHC comfortably, your machine should have at least 64M of memory.
Download the latest GHC distribution (ghc-4.08 InstallShield installer, 19M) from haskell.org It is packaged up using an installer that should be familiar-looking to Windows users.
Note: The Cygwin support for long file names containing spaces is not 100%, so make sure that you install ghc in a directory that has no embedded spaces (i.e., resist the temptation to put it in /Program Files/!)
When the installer has completed, make sure you add the location of the ghc bin/ directory to your path (e.g. /ghc/ghc-4.08/bin ). You need to do this in order to bring the various GHC binaries into scope. Also, if the directory C:/TEMP doesn't already exist, you should create it.
To test the fruits of your labour, try now to compile a simple Haskell program:
bash$ cat main.hs module Main(main) where main = putStrLn "Hello, world!" bash$ ghc -o main main.hs .. bash$ ./main Hello, world! bash$
OK, assuming that worked, you're all set. Go forth and write useful Haskell programs :-) If not, consult the installation FAQ (Section 2.2.2); if that still doesn't help then please report the problems you're experiencing (see Chapter 9).
Further information on using GHC under Windows can be found in Sigbjørn Finne's pages. Note: ignore the installation instructions, which are rather out of date; the Miscellaneous section at the bottom of the page is of most interest, covering topics beyond the scope of this manual.
Symlinks only work under Cygwin (Section 22.214.171.124), so binaries not linked to the Cygwin DLL, in particular those built for Mingwin, will not work with symlinks.
This can have various causes: trying to rename a directory when an Explorer window is open on it tends to fail. Closing the window generally cures the problem, but sometimes its cause is more mysterious, and logging off and back on or rebooting may be the quickest cure.