Skip to content
Create a gist now

Instantly share code, notes, and snippets.

Setup your own win64 version of the Haskell Platform

Things you need to have

  • MSYS
  • GHC 7.8.2 win64 build
  • Cabal 1.20 win build
  • FreeGlut

Things you need to do

  • Install MSYS[^1]

    • Download version 1.0.11 of MSYS. You'll need the following files:

    • MSYS-1.0.11.exe

    • msysDTK-1.0.1.exe

    • msysCORE-1.0.11-bin.tar.gz

    • The files are all hosted on as they're quite hard to find in the official MinGW/MSYS repo

    • Run MSYS-1.0.11.exe followed by msysDTK-1.0.1.exe. The former asks you if you want to run a normalization step. You can skip that.

    • Unpack msysCORE-1.0.11-bin.tar.gz into D:\msys\1.0. Note that you can't do that using an MSYS shell, because you can't overwrite the files in use, so make a copy of D:\msys\1.0, unpack it there, and then rename the copy back to D:\msys\1.0.

  • Install GHC[^2]

  • Install Cabal[^3]

  • Install FreeGlut[^4]

    • [Download freeglut 2.8.1-1 for MinGW]

    • Extract

    • Get the 64 binaries from\freeglut\bin\x64 and\freeglut\lib\x64

    • Put the libfreeglut.a in D:\ghc-7.8.2\mingw\lib

    • Rename it to libglut32.a

    • Put the freeglut.dll in D:\ghc-7.8.2\bin

    • Rename it to glut32.dll

    • Caution, this trick is to isolate this actually 64 version of the freeglut so that the dynamic linking when running a haskell code that uses glut can find the correct library(dll)


Now start msys

In the terminal window now write (or put everything in a script)

export PATH=.:/usr/local/bin:/mingw/bin:/bin:/d/ghc-7.8.2/bin:/d/ghc-7.8.2/mingw/bin
cabal install -p async 
cabal install -p attoparsec 
cabal install -p case-insensitive
cabal install -p cgi 
cabal install -p fgl 
cabal install -p GLUT 
cabal install -p GLURaw 
cabal install -p hashable 
cabal install -p haskell-src 
cabal install -p html 
cabal install -p HTTP
cabal install -p HUnit 
cabal install -p mtl 
cabal install -p network 
cabal install -p OpenGL 
cabal install -p OpenGLRaw 
cabal install -p parallel 
cabal install -p parsec 
cabal install -p QuickCheck 
cabal install -p random 
cabal install -p regex-base 
cabal install -p regex-compat 
cabal install -p regex-posix 
cabal install -p split 
cabal install -p stm 
cabal install -p syb
cabal install -p text
cabal install -p transformers 
cabal install -p unordered-containers
cabal install -p vector 
cabal install -p xhtml 
cabal install -p zlib


Since the msys starts a shell that is 32 you should not build your binaries within here. Instead start a plain old cmd prompt and make a simple hs program


module Main where
import Network.HTTP

main = do
       putStrLn "Hello World"
       r <- simpleHTTP (getRequest "")
       b <- getResponseBody r
       putStrLn b
       inpStr <- getLine
       putStrLn inpStr

ghc --make test64ghc.hs && test64ghc.exe

Take a look at the task manager and see that your program don't have any (32 bit) on it.


[^1]: Setting up a Haskell development environment on Windows [^2]: GHC Windows 64bit (x86_64)

[^3]: Getting The Haskell Cabal [^4]: freeglut Windows Development Libraries

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.