Indeed the codegraph tool, part of Pfff, does some global analysis of an ocaml project using the .Mt (generated by ocamlc -bin_annot) and generates an index of a codebase (a graph_code.marshall file). Not all features of Ocaml are supported though (e.g. functors). Once the graph_code.marshall file has been generated, you can use check, also part of pfff, to detect dead code or other errors. https://github.com/facebook/pfff/wiki/CodeGraph https://github.com/facebook/pfff/wiki/Scheck On Jan 8, 2015, at 7:50 AM, Ashish Agarwal wrote: > Maybe Pfff: > https://github.com/facebook/pfff > > On Thu, Jan 8, 2015 at 10:33 AM, Goswin von Brederlow wrote: > On Thu, Jan 08, 2015 at 02:48:12PM +0100, Stéphane Glondu wrote: > > Le 08/01/2015 14:31, Sébastien Hinderer a écrit : > > > Are there tools / techniques one could use to make it easier to > > > discover / explore the source code of a big OCaml project? > > > > > > In particular, are there any tools available to help finding dead code > > > or coe that may need some refactoring? > > > > > > Many thanks for any suggestion. > > > > One suggestion: http://home.gna.org/oug/index.fr.html > > > > > > Cheers, > > That looks cool. But that still needs a lot of manual filtering to get > results, e.g. to find an unused type or function specified in the > input signature for a functor. > > It could be nice for ocaml to have warnings for this directly. E.g.: > > module type M = ssig type t type s val x : int end > moduel F(M : M) = struct type t = M.t end > > Warning: unused value x in signature M for functor F > Warning: unused type s in signature M for functor F > > Similar for types / values defined but not used in .ml files that do > not appear in the .mli file. > > MfG > Goswin > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs >