This is really great. I'm now using more and more packed libraries, and hence nested modules are much more frequent, and I think ocamldep is no longer good enough in this world. I figured out that you can often switch to codept using OCAMLFIND_COMMANDS="ocamldep=codept" make when ocamldep is invoked via ocamlfind. My first testing results are positive. Thanks for this huge contribution. Gerd Am Montag, den 20.02.2017, 11:25 +0100 schrieb octachron: > Dear all, > > It is my pleasure to announce the release on opam of codept's first  > alpha version: > codept is a dependency analyzer for OCaml projects and an alternative > to  > ocamldep: https://github.com/Octachron/codept . > > > Compared to ocamldep, codept major features are: > >      − whole project analysis >      − extensive warning and error messages >      − uniform handling of delayed alias dependencies (aka "-no- > alias-deps") >      − experimental full dependencies, when dependencies up to  > transitive closure are not precise enough > > Both ocamldep and codept compute an over-approximation of the > dependency  > graph of OCaml projects. However, codept uses whole project analysis > to  > reduce the number of fictitious dependencies inferred at the project  > scale, whereas ocamldep is, by design, limited to local file-by-file  > analysis. > > Consequently, bugs notwithstanding, codept computes an exact > dependency  > graph in any situation that does not involve unknown external modules > or  > first class modules, and is still reliable in some standard use cases > of  > first class modules. > > Moreover, codept will emit warning messages any time it encounters a  > source of potential inaccuracies in the dependency graph, thus > ensuring  > that computed dependencies are always exact in the absence of > warning  > messages. > > Another important point is that codept's whole project analysis > feature  > makes it possible to handle uniformly the delayed dependency aspect > of  > module aliases introduced by the "-no-alias-deps" option. > > At last, in situation where dependencies up to transitive closure > are  > not precise enough, codept's experimental "-expand-deps" option can  > track more precisely type aliases induced dependencies, making it > easier  > to track all cmi files required to compile a given file for instance. > > Basic performance measures indicate that the average time increase > when  > compared to ocamldep.opt ranges between 10% to 50%. > > Codept can be used directly as a drop-in replacement to ocamldep.  > However, to be fully effective codept needs to be feed information > on  > the whole project. Consequently, some build systems require some  > adaptations. As a first step, codept is distributed with an > ocamlbuild  > plugin subpackage that adapts ocamlbuild dependency computation to  > codept's needs. Integration with other build tools is still a work > in  > progress. > > More information is available at https://github.com/Octachron/codept > . > > − octachron > > > -- ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------