mutated_ocaml / ocamlspot /

The branch 'default' does not exist.
Filename Size Date modified Message
25 B
279 B
656 B
1.2 KB
2.6 KB
2.2 KB
3.2 KB
28.2 KB
1.5 KB
596 B
1.2 KB
878 B
2.5 KB
OCamlSpotter : OCaml source browsing

  Camel spotter: Oh, it was extremely interesting, very, very -
    quite... it was dull; dull, dull, dull, oh God it was
    dull. Sitting in the Waterloo waiting room. ...

                                     from You're No Fun Anymore, 
                                    Monty Python's Flying Circus

OCaml module language is powerful. So extremely powerful that you can 
be lost yourself easily inside huge OCaml projects with tons of
modules. Spotting the definition of a variable is sometimes 
"extremely interesting". Let's see such a dull example:

  include M
  open N
  open O
  let _ = f 1

Suppose you are not familiar with the function f and want to spot its
definition. Where to find it? Just from the code you are looking at,
it is not sure: if you are enough lucky it may be f in, or Otherwise, it may be O.f in Or probably N.O.f in More over, there can be complex module operations in (i.e
includes, functor applications) and in such cases the definition may
be found somewhere completely unexpected. Module packing, module load
paths and library installation without .ml files complicate the
situation even worse. 

You first days after joining a large OCaml project should be this kind
of manual value definition spotting with find + grep. Yes, actually it
is very educational: you can learn a lot about the project struggling
in the source tree (only if your collegues have organized things very
well :-P), but it is dull job too, if they use too many  "open M" in

To say short, OCamlSpotter is a program which does this dull job 
automatically for you and permits your energy for something more
"interesting" like Yeti spotting:

 - The -annot (-dtypes) option of ocamlc and ocamlopt is extended and
   creates <module>.spot files, which record the localtion information
   of the values defined and used in the module.

 - A small application ocamlspot provides automatic where-about 
   spotting of the definition of the variable you are interested in.

 - ocamlspot.el provides interactive ocaml-spotting of definition 
   locations in emacs.

 - Interfaces for other editors such as vi can be built easily.

Spot files