Personal tools

Windows

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(msysgit users only need to add MinGW to their path)
(Updated several links; added CPLUS_INCLUDE_PATH)
Line 24: Line 24:
 
* As some of the packages contain Unix/Linux specific scripts/commands, you need [http://www.mingw.org/ MinGW] and [http://www.mingw.org/wiki/msys MSYS] to simulate a Unix environment. In some cases you need [http://www.cygwin.com/ Cygwin] instead. If you use [http://code.google.com/p/msysgit/ msysgit] on Windows already, all you need to do is add MinGW to your path.
 
* As some of the packages contain Unix/Linux specific scripts/commands, you need [http://www.mingw.org/ MinGW] and [http://www.mingw.org/wiki/msys MSYS] to simulate a Unix environment. In some cases you need [http://www.cygwin.com/ Cygwin] instead. If you use [http://code.google.com/p/msysgit/ msysgit] on Windows already, all you need to do is add MinGW to your path.
   
* If you need to link to C-software, define an environment variable C_INCLUDE_PATH that lists the directories where the header files can be found. For linking the libraries you need to define an environment variable LIBRARY_PATH as well, listing the directories where .a and .lib files can be found.
+
* If you need to link to C-software, define an environment variable C_INCLUDE_PATH that lists the directories where the header files can be found. For linking the libraries you need to define an environment variable LIBRARY_PATH as well, listing the directories where .a and .lib files can be found. In case C++ software must be compiled, define CPLUS_INCLUDE_PATH to list the directories with C++ header files.
   
 
* Packages are often delivered as a .tar or .tar.gz file, see [[How to unpack a tar file in windows]]
 
* Packages are often delivered as a .tar or .tar.gz file, see [[How to unpack a tar file in windows]]
Line 50: Line 50:
 
== Special tips and tricks for Windows ==
 
== Special tips and tricks for Windows ==
   
* darcs : http://wiki.darcs.net/index.html/WindowsConfiguration
+
* darcs : http://wiki.darcs.net/WindowsConfiguration
   
 
* Make sure your Haskell compiler (e.g. GHC) and tools are on your system path: http://www.computerhope.com/issues/ch000549.htm
 
* Make sure your Haskell compiler (e.g. GHC) and tools are on your system path: http://www.computerhope.com/issues/ch000549.htm
Line 67: Line 67:
 
Below a list of binary packages packages for Windows. To be sure you get the last version of each, it is best to download the source from [http://hackage.haskell.org/packages/archive/pkg-list.html Hackage] and compile.
 
Below a list of binary packages packages for Windows. To be sure you get the last version of each, it is best to download the source from [http://hackage.haskell.org/packages/archive/pkg-list.html Hackage] and compile.
   
[http://www.haskell.org/alex/dist/alex-2.0.1-win32.zip Alex 2.0.1] (obsolete) [http://www.haskell.org/haskellwiki/Alex (website)] ;
+
[http://www.haskell.org/alex/dist/alex-2.0.1-win32.zip Alex 2.0.1] (obsolete) [http://www.haskell.org/haskellwiki/Alex/ (website)] ;
 
[http://www.cs.york.ac.uk/fp/cpphs-1.2-win32.zip Cpphs 1.2] (obsolete) [http://haskell.org/cpphs/ (website)] ;
 
[http://www.cs.york.ac.uk/fp/cpphs-1.2-win32.zip Cpphs 1.2] (obsolete) [http://haskell.org/cpphs/ (website)] ;
 
[http://homepage.mac.com/kirby81_it/darcs/darcs-2.2.1-win1.zip Darcs 2.2.1 for Windows without Cygwin] ;
 
[http://homepage.mac.com/kirby81_it/darcs/darcs-2.2.1-win1.zip Darcs 2.2.1 for Windows without Cygwin] ;
 
[http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:bminllzdrpadzvyt54cbhotnam:jqafknaedfksjjq3xmkfpe4g4ppklctw3xwpszufol7zddyx5agq/darcsdir-w32-2.2.0.zip Darcs 2.2.0 for Windows without Cygwin, with SSH support files] ;
 
[http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:bminllzdrpadzvyt54cbhotnam:jqafknaedfksjjq3xmkfpe4g4ppklctw3xwpszufol7zddyx5agq/darcsdir-w32-2.2.0.zip Darcs 2.2.0 for Windows without Cygwin, with SSH support files] ;
 
[http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:bminllzdrpadzvyt54cbhotnam:jqafknaedfksjjq3xmkfpe4g4ppklctw3xwpszufol7zddyx5agq/darcsdir-cygwin-2.2.0.tar.bz2 Darcs 2.2.0 for Windows with Cygwin] [http://darcs.net/ (website)] ;
 
[http://testgrid.allmydata.org:3567/uri/URI:DIR2-RO:bminllzdrpadzvyt54cbhotnam:jqafknaedfksjjq3xmkfpe4g4ppklctw3xwpszufol7zddyx5agq/darcsdir-cygwin-2.2.0.tar.bz2 Darcs 2.2.0 for Windows with Cygwin] [http://darcs.net/ (website)] ;
[http://repetae.net/computer/haskell/DrIFT/drop/ Drift] [http://repetae.net/john/computer/haskell/DrIFT/ (website)] ;
+
[http://repetae.net/computer/haskell/DrIFT/drop/ Drift] [http://repetae.net/computer/haskell/DrIFT/ (website)] ;
 
[http://haskell.org/ghc/dist/6.10.1/ghc-6.10.1-i386-windows.exe GHC 6.10.1]
 
[http://haskell.org/ghc/dist/6.10.1/ghc-6.10.1-i386-windows.exe GHC 6.10.1]
 
[http://haskell.org/ghc/ (website)] ;
 
[http://haskell.org/ghc/ (website)] ;
Line 80: Line 80:
 
[http://www.haskell.org/hoogle/other/hoogle-win32.zip Hoogle June 2006] (obsolete) [http://www.haskell.org/hoogle/ (website)] ;
 
[http://www.haskell.org/hoogle/other/hoogle-win32.zip Hoogle June 2006] (obsolete) [http://www.haskell.org/hoogle/ (website)] ;
 
[ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/hscolour-1.9.zip HsColour 1.9] [http://www.cs.york.ac.uk/fp/darcs/hscolour/ (website)] ;
 
[ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/hscolour-1.9.zip HsColour 1.9] [http://www.cs.york.ac.uk/fp/darcs/hscolour/ (website)] ;
[http://haskell.org/hoogle/other/lambdashell-0.3.zip Lambda Shell 0.3] (obsolete) [http://www.cs.princeton.edu/~rdockins/lambda/home (website)] ;
+
[http://haskell.org/hoogle/other/lambdashell-0.3.zip Lambda Shell 0.3] (obsolete) [http://www.cs.princeton.edu/~rdockins/lambda/home/ (website)] ;
[http://cvs.haskell.org/Hugs/downloads/2006-09/WinHugs-Sep2006.exe WinHugs September 2006] [http://www.haskell.org/hugs/ (website)] ;
+
[http://ndmitchell.googlecode.com/files/WinHugs-Sep2006.exe WinHugs September 2006] [http://www.haskell.org/hugs/ (website)] ;
[http://haskell.forkio.com/Home/curl-win32/curl-7.19.4-mingw32.zip?attredirects=0 cURL 7.19.4] [http://haskell.forkio.com/Home/curl-win32 (website)] ;
+
[http://haskell.forkio.com/Home/curl-win32/curl-7.19.4-mingw32.zip?attredirects=0 cURL 7.19.4] [http://haskell.forkio.com/Home/curl-win32/ (website)] ;
   
   
 
=== Development ===
 
=== Development ===
   
[ftp://ftp.gnu.org/gnu/non-gnu/cvs/binary/stable/x86-woe/cvs-1-11-22.zip CVS 1.11.22] [http://www.nongnu.org/cvs/ (website)] ; [http://www.python.org/ftp/python/2.4.3/python-2.4.3.msi Python 2.4.3] [http://www.python.org/ (website)] ; [http://kent.dl.sourceforge.net/sourceforge/scons/scons-0.96.1.win32.exe Scons 0.96.1] [http://www.scons.org/ (website)] ; [http://subversion.tigris.org/files/documents/15/32856/svn-1.3.2-setup.exe SVN 1.3.2] [http://subversion.tigris.org/ (website)] ; [ftp://download.textpad.com/pub/textpad4.7/txpeng473.exe TextPad 4.7.3] [http://www.textpad.com/ (website)] ; [http://unxutils.sourceforge.net/UnxUtils.zip Unix Utils 14-04-03] [http://unxutils.sourceforge.net/ (website)] ;
+
[ftp://ftp.gnu.org/gnu/non-gnu/cvs/binary/stable/x86-woe/cvs-1-11-22.zip CVS 1.11.22] [http://www.nongnu.org/cvs/ (website)] ; [http://www.python.org/ftp/python/2.4.3/python-2.4.3.msi Python 2.4.3] [http://www.python.org/ (website)] ; [http://sourceforge.net/projects/scons/files/ Scons] [http://www.scons.org/ (website)] ; [http://subversion.tigris.org/files/documents/15/32856/svn-1.3.2-setup.exe SVN 1.3.2] [http://subversion.tigris.org/ (website)] ; [ftp://download.textpad.com/pub/textpad4.7/txpeng473.exe TextPad 4.7.3] [http://www.textpad.com/ (website)] ; [http://unxutils.sourceforge.net/UnxUtils.zip Unix Utils 14-04-03] [http://unxutils.sourceforge.net/ (website)] ;
   
 
== Shipping Installable Applications ==
 
== Shipping Installable Applications ==

Revision as of 00:26, 8 December 2009

GHC is well supported on Windows.


Contents

1 Editors


2 Compilers/interpreters

3 Tools for compilation

  • As some of the packages contain Unix/Linux specific scripts/commands, you need MinGW and MSYS to simulate a Unix environment. In some cases you need Cygwin instead. If you use msysgit on Windows already, all you need to do is add MinGW to your path.
  • If you need to link to C-software, define an environment variable C_INCLUDE_PATH that lists the directories where the header files can be found. For linking the libraries you need to define an environment variable LIBRARY_PATH as well, listing the directories where .a and .lib files can be found. In case C++ software must be compiled, define CPLUS_INCLUDE_PATH to list the directories with C++ header files.
  • Source files from Unix(-like) systems have lines terminated with Line Feed only; to convert them to MS-DOS format (as needed by Windows), use the unix2dos command (included in MSYS). For more information, give command: unix2dos --help
  • To convert a set of files to MS-DOS format (note: this might damage binary files):
C:\MSYS\1.0\bin\find . -type f -exec unix2dos {} ;
Note: the find command included in MSYS is different from the MS-DOS find command, therefore, you need to specify the entire path to this command.


4 Libraries

  • GUI : Gtk2Hs - A binding of GTK in Haskell. Note this requires installing GTK on windows.
  • Win32 - low levelish bindings to Windows API. Comes with ghc and non-minimal hugs distribution. Win32 darcs repo
  • winerror: Error handling for foreign calls to the Windows API


5 Special tips and tricks for Windows

  • GHCi: Using GHCi from a DOS box sucks. Using it from withing shell mode in Emacs sucks a lot less - do 'M-x shell' in emacs, then type 'ghci'.
  • GHCi on Cygwin: When running GHC under a Cygwin shell on Windows, Ctrl-C sometimes doesn't work. A workaround is to use the rlwrap program to invoke ghci : In addition to proper Ctrl-C, you also get emacs (or vi) key bindings and command history across sessions, which saves you a load of typing.
  • If a package depends (either directly or indirectly) on the unix package, you cannot compile it on Windows


6 Direct downloads

6.1 Haskell

Below a list of binary packages packages for Windows. To be sure you get the last version of each, it is best to download the source from Hackage and compile.

Alex 2.0.1 (obsolete) (website) ; Cpphs 1.2 (obsolete) (website) ; Darcs 2.2.1 for Windows without Cygwin ; Darcs 2.2.0 for Windows without Cygwin, with SSH support files ; Darcs 2.2.0 for Windows with Cygwin (website) ; Drift (website) ; GHC 6.10.1 (website) ; Haddock 0.7 (obsolete) (website) ; Hat July 2006 (website) ; Happy 1.13 (obsolete) (website) ; Hoogle June 2006 (obsolete) (website) ; HsColour 1.9 (website) ; Lambda Shell 0.3 (obsolete) (website) ; WinHugs September 2006 (website) ; cURL 7.19.4 (website) ;


6.2 Development

CVS 1.11.22 (website)  ; Python 2.4.3 (website)  ; Scons (website)  ; SVN 1.3.2 (website)  ; TextPad 4.7.3 (website)  ; Unix Utils 14-04-03 (website)  ;

7 Shipping Installable Applications

* bamse lets you build windows installers for your Haskell app (MSI).