.がいっぱいあるファイルをコンパイルしてみる

$ cat hoge.a.ml
let a = 100
$ ocamlc -c hoge.a.ml
$ ls hoge.a.cm*
hoge.a.cmi      hoge.a.cmo

うーむ、コンパイル通っちゃった。続き。

$ ocaml -I .
        Objective Caml version 3.10.0+beta

# #load "hoge.a.cmo";;
# module H = Hoge;;
Unbound module Hoge
# module H = Hoge.a;;
Unbound module Hoge

むむ。ロードはできるけど、使えない。

$ ocaml-3.10.0+beta/tools/dumpobj hoge.a.cmo
## start of ocaml dump of "hoge.a.cmo"
       0  CONSTINT 100
       2  PUSHACC0 
       3  MAKEBLOCK1 0
       5  POP 1
       7  SETGLOBAL Hoge.a
## end of ocaml dump of "hoge.a.cmo"

ちゃっかりHoge.aとかモジュール定義してやがる。いいかげんなんだなぁ。

まあ型付けでコケるから良いってことか。