Haskellコンパイラ「jhc」をビルド

Haskellコンパイラの「jhc」をビルドしてみました。
Ubuntuでやってみました。
方法は、jhcの公式サイトの http://repetae.net/computer/jhc/building.shtml ここを参考に書いてみました。

必要なライブラリのインストール

jhc自身もHaskellで書かれているので、コンパイルGHCが必要です。
さらに、Haskellライブラリ「binary」「zlib」「utf8-string」「readline」「fgl」が必要です。
これらのライブラリは、「sudo cabal install ライブラリ名 --global」としてインストールしましたが、これが正しいのかはよくわかりません。
さらに、Ubuntuのパッケージから「libghc6-regex-compat-dev」をインストールする必要がありました。これは普通にapt-getでインストールできます。

コンパイル

まずは適当なディレクトリで「wget http://repetae.net/dist/jhc-0.7.6.tar.gz」でソースをダウンロードしてから、
「tar xzf jhc-0.7.6.tar.gz」で解凍します。
コンパイルは普通に、configureとmakeを使ったコンパイルです。

./configure --prefix=/usr/local
make

makeの最後に、全てのソースのコンパイルが終わりリンクしている時(Linkingと出てきた時)に「Killed」というメッセージが出てきてしまいましたが、jhcが出来ていたので一応成功だと思います。
インストールも普通に「sudo make install」です。

使ってみる

main = putStrLn "Hello World"

hello.hsという名前で保存したこんなソースを「jhc hello.hs -o hello」でコンパイルしてみましたが、
GHCコンパイルした場合よりも小さいバイナリを出力するようです。