■
overloadingが欲しくてたまらないので、gcamlを使いたい。
とりあえずOCamlMakefileでgcamlを使う方法を考える。なにも難しいことは無く、
OCAMLC:=gcaml OCAMLDEP:=gcamldep OCAMLYACC:=gcamlyacc OCAMLLEX:=gcamllex
とinclude OCamlMakefileの前にMakefileに書いておけば良い。(OCamlMakefileで定義済みかどうか確認しているから)
さて次は、OUnitが欲しい。当然だが一応確認したところ、ocamlのcmoとはリンクできない。gcamlでのコンパイルしなおしが必要。ocamlで通るプログラムは、syntax的にはgcamlでも通るはず*1。適当にコンパイルしなおしておしまい。あとは、ocamlfindが使えないので、Makefileには(PACKS=...ではなく)
INCDIRS=ounit-1.0.1 LIBS=unix oUnit
とか書いておけばOK。
将来的にはocamlにoverloading入るのだろうか。
ああ、なんか関数型なネタだ。
*1:直感的には意味的にも通りそうだけど、変な反例があるかも