I'm confused. I've got a version of pfff compiled from today's github version. I get the following: $ codegraph -lang cmt -build . Fatal error: exception Failure("language not supported: cmt") On 22 January 2015 at 22:09, yoann padioleau wrote: > Hi Arnaud, > > You first need to build the graph code database. > But for that you need to have the .cmt files generated for your project. > You can generate them just like you generate the .annot by modifying your > makefile, e.g. > by adding -bin_annot to OCAMLCFLAGS for instance. > Once the .cmt are here, do > ~/pfff/codegraph -lang cmt -build /path/to/your/project > > then you can use > ~/pfff/scheck -lang cmt /path/to/your/project > > > On Jan 19, 2015, at 1:58 AM, Arnaud Spiwack > wrote: > > Dear Yoann, > > Could you give the relevant commands to be used in an ocaml project (in > particular, it seems that `scheck -lang ml` fails with "unsuported > language") ? > > On 15 January 2015 at 19:16, yoann padioleau > wrote: > >> 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 >>> >> >> >> > >