HSQLが入らない

久々に作りたいものができたので、
そのためにデータベースソフトをインストールして
それを何らかの言語からいじれるようにしようと思った。
最初PostgreSQL+Gaucheでやろうとしたのだが、
まずいきなりPostgreSQLのインストールで詰まった。
Cygwin上で動かそうと思っていたのだが、
PostgreSQLCygwin入れたら勝手に入っているので、
起動させれば良いだけだろうと思って
手順を調べてそのとおりにやってみるも、うまくいかない。
なんでだー、と調べることしばし、
なんと、Cygwinの1.5.18-1ではPostgreSQLは落ちるらしい。
回避法は
・バージョンを古くする
・スナップショットを取ってくる
・新しいバージョンが出るまで待つ
…どれも話にならない。
もういいや、PostgreSQLやめ。
ということで即効でMySQLに鞍替え。
MySQLをいろいろ調べてみると、
どうもWindows版のほうがCygwinコンパイルしたものよりも
安定していて良いらしい。
というわけでMySQLインストーラでインストールするだけ。
ならPostgreSQLWindows版を使えよ、という話であるが、
まぁ、もう何でもいいや…。


それで、MySQLが入ったので、次にGaucheDBIライブラリを
インストールしようとしたのだが、ここでまた詰まる。
どうやらコンパイルするためにlibmysqlclientというものが必要らしいのだが、
WindowsMySQLをインストールしたら、Cygwinで使えるライブラリは入らないらしい。
そういうわけでこれまたいろいろ調べたところ、
MySQLのソースを取ってきて、クライアントだけ
Cygwinコンパイルしないといけないようだ。
ようやくコンパイルしてインストールできて、
さぁやっとプログラミングできる、と思いきや、
Gaucheからデータベースへの接続ができない。
よく分からない例外で落ちる。
これまたいろいろ調べるもぜんぜん分からない。
(というか、資料自体が数えるほどしかないんだけど…)


あああ、もういいや。Gaucheやめ。
というか、なんでGaucheにしようと思ったのか。
HaskellSQLを扱うライブラリなかったかいな、
とまたまたいろいろ調べてみると、
HaskellDBというなんだかすごそうなものがあった。
コンビネータライブラリでSQLの構文をごちゃごちゃできたりするらしく、
おお、これでいいやん、というわけで、インストールすることに。
しかしこれはHSQLというのを必要とするらしい。
それで、そっちを先にインストール。


HSQLの最新版はCabalというシステムを使っていて
ビルド方法がちょっと特殊だが、HSQLライブラリは難なくインストールできた。
しかし、もうひとつ必要なhsql-mysqlのほうがコンパイルできない。
Cygwin上で実行しているのだが、そこからさらにrunghcを起動しているので、
Cygwinのパスがスクリプトに見えない。
(GHCWindowsネイティブ版を使っている)
CygwinやらWindowsネイティブやらを混在させているので
もう本当にややこしくてたまらんのだが、
とにかくGHCCygwinのパスが見せられないので、
WindowsのほうのPATHを書き換えてみたり、
Cabalが生成するファイルを書き換えてみたり、
Cabal自体のスクリプトを書き換えてみたり、
いろいろやって、ソースが読み込んでるヘッダファイルが見えるようにはなった。
しかし、ヘッダが見えてもコンパイルが通らん。
コンパイルしようとしているファイルは拡張子がhscなファイルで
(これ、どういうファイルか知らないんだけど…)
なんだか、途中に #include てな感じで
Cのヘッダファイルをインクルードしている。
Haskellソース中でCのヘッダをインクルードしたらどうなるのか
よく分からないのだが、とにかくその中でエラーが出てコンパイルが通らない。


いろいろ試したり調べたりしたものの、
そもそもHSQLは総ダウンロード数が100回未満だったり、
(やはりHaskellプログラマは希少種なのか?)
メーリングリストには最新版が出てから4回ぐらいしか書き込みがなかったりで、
どうやって良いのかさっぱり分からない。


そんなこんなで結局一日が終わってしまった。
どなたか詳しい方、HSQLのWindowsへのインストール方法、
あるいはHaskellでデータベースを扱う方法を教えていただけると助かります。