To get the most out of your GHC environment, you should add '~/.cabal/bin' to your PATH environment variable before the path where you have GHC installed. This will allow you to get and use cabal-updates, as well as other programs shipped with GHC like hsc2hs.

The problem is that GHC generates 32bit code, but gcc on Snow Leopard defaults to 64bit code now.

+

−

The workaround is to tell gcc to accept 32bit code:

+

* Install the [http://hackage.haskell.org/platform/ Haskell Platform]

−

+

−

* install the [http://hackage.haskell.org/platform/ Haskell Platform]

+

−

* patch the following wrapper scripts to include the flags "-optc-m32 -opta-m32 -optl-m32":

+

−

** /usr/bin/ghc

+

−

** /usr/bin/ghci

+

−

** /usr/bin/runhaskell

+

−

** /usr/bin/runghc

+

−

** /usr/bin/hsc2hs

+

−

+

−

See also [http://passingcuriosity.com/2009/haskell-on-snow-leopard/ Haskell on Snow Leopard].

+

To uninstall ghc call:

To uninstall ghc call:

−

<code>

<code>

−

sudo /Library/Frameworks/GHC.framework/Tools/Uninstaller

+

sudo uninstall-hs

</code>

</code>

+

+

=== Xcode 4.1 ===

+

+

GHC needs Xcode to be installed so it has access to the bintools, headers, and link libraries of the platform. The later two are provided by the SDK that comes as part of Xcode. GHC 7.0.2 is compiled against the 10.5 SDK. Xcode 4.1 no longer ships with it. <tt>ghci</tt> will work, but linking and some compiles with <ghc> will not. To make those work you need a copy of the 10.5 SDK. You can get this one several ways:

+

+

* Before you install Xcode 4.1, if you have Xcode 3.2 installed, do one of the following:

** Move just the sdk aside, install Xcode 4.1, then move it back into the <tt>/Developer/SDKs</tt> directory.

+

* If you don't have Xcode 3.2, then you can download it from the Apple Developer site, and install it in a location other than "/Developer". If you have already installed Xcode 4.1 ''be sure'' that you customized the install and don't install the "System Tools" or "UNIX Development" packages.

Haskell libraries are installed with the <code>cabal</code> command line tool.

+

+

Some libraries depend on external C libraries, which are best installed with [http://macports.org MacPorts]. However, you have to tell cabal to include the <code>/opt/local/</code> directories when searching for external libraries. The following shell script does that by wrapping the <code>cabal</code> utility

1 The Haskell Platform

There are Mac OS X installers of the full Haskell Platform development environment. We recommend it:

2 GHC

2.1 Important notes

To get the most out of your GHC environment, you should add '~/.cabal/bin' to your PATH environment variable before the path where you have GHC installed. This will allow you to get and use cabal-updates, as well as other programs shipped with GHC like hsc2hs.

In your ~/.profile, add the line:

export PATH="~/.cabal/bin:$PATH";

2.2 Mac OS X 10.5 (Leopard)

To install GHC on Mac OS X 10.5 (Leopard), there are the following options:

2.3 Mac OS X 10.6 (Snow Leopard) and 10.7 (Lion)

2.4 Xcode 4.1

GHC needs Xcode to be installed so it has access to the bintools, headers, and link libraries of the platform. The later two are provided by the SDK that comes as part of Xcode. GHC 7.0.2 is compiled against the 10.5 SDK. Xcode 4.1 no longer ships with it. ghci will work, but linking and some compiles with <ghc> will not. To make those work you need a copy of the 10.5 SDK. You can get this one several ways:

Before you install Xcode 4.1, if you have Xcode 3.2 installed, do one of the following:

Move just the sdk aside, install Xcode 4.1, then move it back into the /Developer/SDKs directory.

If you don't have Xcode 3.2, then you can download it from the Apple Developer site, and install it in a location other than "/Developer". If you have already installed Xcode 4.1 be sure that you customized the install and don't install the "System Tools" or "UNIX Development" packages.

3 HUGS

4 Installing libraries with external C bindings

Haskell libraries are installed with the cabal command line tool.

Some libraries depend on external C libraries, which are best installed with MacPorts. However, you have to tell cabal to include the /opt/local/ directories when searching for external libraries. The following shell script does that by wrapping the cabal utility