overloadingが欲しくてたまらないので、gcamlを使いたい。

とりあえずOCamlMakefileでgcamlを使う方法を考える。なにも難しいことは無く、

OCAMLC:=gcaml
OCAMLDEP:=gcamldep
OCAMLYACC:=gcamlyacc
OCAMLLEX:=gcamllex

include OCamlMakefileの前にMakefileに書いておけば良い。(OCamlMakefileで定義済みかどうか確認しているから)

さて次は、OUnitが欲しい。当然だが一応確認したところ、ocamlcmoとはリンクできない。gcamlでのコンパイルしなおしが必要。ocamlで通るプログラムは、syntax的にはgcamlでも通るはず*1。適当にコンパイルしなおしておしまい。あとは、ocamlfindが使えないので、Makefileには(PACKS=...ではなく)

INCDIRS=ounit-1.0.1
LIBS=unix oUnit

とか書いておけばOK。

将来的にはocamlにoverloading入るのだろうか。

ああ、なんか関数型なネタだ。

*1:直感的には意味的にも通りそうだけど、変な反例があるかも