iOS 7 のリリースに合わせて Xcode 5.0 がリリースになり、思わずアップデートしてしまった人はきっと私だけじゃないはず。しかし、これによって私の Haskell 環境は調子が悪くなってしまいました。特に Haskell コード中のシングルクォートの扱いがおかしいケースが目立ちました。
なお、私の Haskell 環境は Homebrew でインストールしたものです。
GHC に使わせる gcc を変更する
問題の原因は、Xcode 5.0 付属の gcc のようです。そこで、gcc のバージョン 4.7 を別途インストールします。
brew tap homebrew/versions brew install gcc47 |
GHC の設定を変更するため /usr/local/Cellar/ghc/7.6.3/lib/ghc-7.6.3/settings
を修正します。
2 | ("C compiler command", "/usr/bin/gcc"), |
↑これを↓このように修正します。
2 | ("C compiler command", "/usr/local/bin/gcc-4.7"), |
これでだいたい良さそうでしたが、これだけでは Yesod が依存している entropy のコンパイルが通りませんでした。どうも単純にパス上の gcc を見ているくさいのです。ですので、Homebrew を使っているのでしたら、/usr/bin
よりも /usr/local/bin
を優先してパスを通しているかと思いますので、ここにシンボリックリンクを作成してしのぎましょう。
ln -s /usr/local/bin/gcc-4.7 /usr/local/bin/gcc |
ただしこれをやると、ほとんど Xcode の gcc をパス上から隠蔽することになるわけですから、その点十分に注意してください(コマンドラインで Xcode に依存するような開発をする場合など)。
それから、haskell-platform も念の為に再インストールしたほうがいいかもしれません。
brew uninstall haskell-platform brew install haskell-platform |