ターミナルで
$ ocaml
Objective Caml version 3.12.1 #
で、さぁてモジュール読み込もうと思ったときに「あっ、しまったぁ!インストールしたモジュール試したかったから、cmaファイル読み込ませないとぉぉぉぉ...いちいちやってらんないよぅ。 ダメだquitしよう; ;」。なんてことになったりします。いや、よくありました。
インタラクティブシェルでfindlibが使えると便利ですよねー。
であるんですね、これが。
知らなかったのかよ!って言いたくなりますよね。自分も知らなかったのかよ!って言いたいです。
インタラクティブシェルで
# #use "topfind";;
と入力すると、
- : unit = () Findlib has been successfully loaded. Additional directives: #require "package";; to load a package #list;; to list the available packages #camlp4o;; to load camlp4 (standard syntax) #camlp4r;; to load camlp4 (revised syntax) #predicates "p,q,...";; to set these predicates Topfind.reset();; to force that packages will be reloaded #thread;; to enable threads - : unit = () #
となってfindlibがインタラクティブシェルで利用できるようになります。
たとえばOUnit試してみようかなぁというとき、(もちろんOUnitくらいはfindlibに登録されてますよね!)
# #require "oUnit";; /usr/local/lib/ocaml/unix.cma: loaded /usr/local/lib/ocaml/site-lib/oUnit: added to search path /usr/local/lib/ocaml/site-lib/oUnit/oUnit.cma: loaded
これでOUnitが利用できるようになります。便利だよね!
最近は自分の自作ライブラリをテストコードとは別に試しで動かすときとかに使ってます。正直、ocamlfindに登録してから動かした方が動作確認がやりやすいので。