spotinstall /

Filename Size Date modified Message
126 B
130 B
846 B
633 B
20.4 KB
2.3 KB
501 B
1.9 KB
1.9 KB
145.8 KB
4.8 KB

SpotInstall is a tool to facilitate the installation of OCaml annotation files (.cmt, .cmti, .spot, .spit).


Many existing OCaml libraries, applications and the compiler itself do not produce or install the annotation files (.annot, .cmt, .cmti, .spot, .spit) which are essential for subexpression type queries (caml-types.el), definition seaches and code refactoring (TypeRex and OCamlSpotter). If you want to use development tools, you have to:

  • Rebuild all the software from the source, adding -annot/-bin-annot option to compiler flags in build scripts i.e. Makefile/OCamlBuild/OMakefile.
  • Install those annotation files together with the library objects and signatures. (Require modification of the build scripts)

for all the programs.

I propose a workaround, consists of two things:

  • A very small compiler patch which activates -annot and -bin-annot if OCAML_ANNOT environment variable is defined. (You no longder need to add -annot/-bin-annot to the build scripts.)
  • A small tool to install annotation files to the library destination directory. (You no longer need to add annotation file installation to the build scripts.)

For the first workaround, you need a small patch available from:

hg clone -b annot

or included in this directory, ocaml-annot-<version>.patch.

For the second one, you can use SpotInstall. This tool.


You need:

First create OMakefile.root by:

yes no | omake --install


omake install


spotinstall <packages>

The command checks the files in the installation directory of OCamlFind package <package>, and if there are corresponding annotation files in the current and its sub directories, copy them to the installation directory.

If <package> is ocaml, spotinstall works bit differently and copies the annotation files build under OCaml compiler source tree.


To use the annotation files installed by SpotInstall smoothly, you should keep your source trees and their annotation files.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.