GHC7.8.2をMac OS X 10.9 Marvericksにインストール
新機能もりもりのGHC7.8.1が遂に4/9に出ました。
https://www.haskell.org/ghc/docs/7.8.1/html/users_guide/release-7-8-1.html
リリースノート見てなんでこんなに詰め込んだんだ1年も待たせずにもっと刻めばよいのにというかんじですが、
とか思ってたら、3日もせずに4/12に7.8.2が出ました。
https://www.haskell.org/ghc/docs/7.8.2/html/users_guide/release-7-8-2.html
なんか型シノニムの致命的なバグがあったようです。
#8978 (Type synonyms in class associated types behave strangely) – GHC
というわけで、7.8系をお試しするなら現時点で最新の7.8.2を入れるのがよいかと。
Mac用のバイナリのダウンロードリンクは以下
GHC 7.8.2 download — The Glasgow Haskell Compiler
- Xcodeのアップデート
GHC7.8系はダウンロードリンクのところにXcode5.1が必要との記載があり。
This is a bindist for Mac OS X 10.9 (Mavericks). The package was built with and requires Xcode 5.1 (in particular, the "Unix Development Support") to be already installed. You can find Xcode at http://developer.apple.com/.
確認したところ、実機は5.0系だったので、AppStoreからXcodeを5.1系にアップデートしておく。重いので結構時間がかかる。
- GHCのバイナリのダウンロード
適当なディレクトリにバイナリをダウンロードして展開
$ mkdir -p /usr/local/src/haskell/ghc $ cd /usr/local/src/haskell/ghc $ curl -O https://www.haskell.org/ghc/dist/7.8.2/ghc-7.8.2-x86_64-apple-darwin-mavericks.tar.bz2 $ tar jxf ghc-7.8.2-x86_64-apple-darwin-mavericks.tar.bz2 $ cd ghc-7.8.2
- GHCのインストール
既にインストール済みのHaskell Platform(GHC7.6.3)があって干渉するのでインストールパスを個別に指定してインストールする。
$ mkdir -p /usr/local/haskell/ghc/ghc-7.8.2 $ ./configure --prefix=/usr/local/haskell/ghc/ghc-7.8.2 $ make install
- PATHの設定
$ vi ~/.bashrc
~/.bashrcでPATHを通すのだけど、ここで既にインストール済みのHaskell Platformがあるのでそちらをコメントアウトして、/usr/binの下からシンボリックが色々貼られてしまってるので、先ほどインストールしたパスが一番先頭になるように調整する。
export PATH=/usr/local/haskell/ghc/ghc-7.8.2/bin:$PATH #export PATH=$PATH:~/Library/Haskell/bin
環境変数を読みなおす
$ . ~/.bashrc
正しくパスが通ってるか確認する。
$ ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.2
うん。バージョンが7.8.2になってる。
- cabal-installのバージョンアップ
GHC7.8系はcabal-installの1.18系が必須とのことで、こちらもバージョンアップしておく必要あり。Mac用のコンパイル済みのバイナリがあるのでこれをダウンロードして適当なパスに配置する。
$ mkdir -p /usr/local/src/haskell/cabal-install $ curl -O http://www.haskell.org/cabal/release/cabal-install-1.18.0.3/cabal-x86_64-apple-darwin-mavericks.tar.gz $ tar zxf cabal-x86_64-apple-darwin-mavericks.tar.gz $ mkdir -p /usr/local/haskell/cabal/cabal-1.18.0.3/bin $ mv cabal /usr/local/haskell/cabal/cabal-1.18.0.3/bin/
パスを通す。ここでもHaskell Platformと干渉しないように/usr/binより前に来るように注意。
export PATH=/usr/local/haskell/ghc/ghc-7.8.2/bin:/usr/local/haskell/cabal/cabal-1.18.0.3/bin:$PATH
パスの読み直し。
$ . ~/.bashrc
パスが通ったか確認。
$ cabal --version cabal-install version 1.18.0.3 using version 1.18.1.3 of the Cabal library
cabalのバージョンアップ完了。
インストールしたらお約束のHello World。
以下をhello.hsとして作成。
main = putStrLn "Hello World!"
コンパイルして実行
$ ghc hello.hs [1 of 1] Compiling Main ( hello.hs, hello.o ) Linking hello ... $ ./hello Hello World!
ちゃんと動いた。