ocamldoc -dot で OCaml のモジュール依存グラフを表示する

ocamldoc なんかトンと使っておりませんでしたので、さっき知ったのですが、

ocamldoc -dot *.ml *.mli -o dep.dot

でモジュール依存関係をグラフにしてくれるそうですよ、奥様。

ちゃんと使うにはインクルードとか設定しないと駄目です。(じゃあ ocamldep の方が楽ぢゃないかという気もするが、、、) 例えば、次の例は ocamlfind と sexplib の p4 マクロと他いろいろパッケージを使っている例:

ocamlfind ocamldoc \
  -I +threads \                                 # thread 使ってるとき
  -syntax camlp4o -package sexplib.syntax \     # p4 使ってたら
  -package xml-light,curl,tiny_lwt,sexplib \    # package 色々使ってたら
  -dot -dot-include-all -dot-reduce \           # 描画オプション
  *.ml *.mli \                                  # 解析するターゲット
  -o depend.dot                                 # 出力

depend.dot が出来たら

dot -Tgif depend.dot -o depend.gif

でこんなん出た。

たまにはこんな小ネタで勘弁。