caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] [ANN] codept 0.9: an alternative dependency analyzer for ocaml projects
@ 2017-02-20 10:25 octachron
  2017-02-20 17:29 ` Gerd Stolpmann
  0 siblings, 1 reply; 2+ messages in thread
From: octachron @ 2017-02-20 10:25 UTC (permalink / raw)
  To: Caml-list

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



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-02-20 17:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-20 10:25 [Caml-list] [ANN] codept 0.9: an alternative dependency analyzer for ocaml projects octachron
2017-02-20 17:29 ` Gerd Stolpmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).