You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today on caml-list:
[ANN] codept 0.9: an alternative dependency analyzer for ocaml projects
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.
Today on caml-list:
[ANN] codept 0.9: an alternative dependency analyzer for ocaml projects
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:
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
The text was updated successfully, but these errors were encountered: