From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id E5B1B7F616 for ; Mon, 20 Feb 2017 18:29:42 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=info@gerd-stolpmann.de; spf=None smtp.mailfrom=info@gerd-stolpmann.de; spf=None smtp.helo=postmaster@mout.kundenserver.de Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.126.187; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.126.187; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.kundenserver.de) identity=helo; client-ip=212.227.126.187; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@mout.kundenserver.de"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AstbDtBZ8bJ75av+xEsGb6UH/LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZpc66bnLW6fgltlLVR4KTs6sC0LuL9fm6Ej1dqdbZ6TZZL8wKD0dEwe?= =?us-ascii?q?wt3CUeQ+e9QXXhK/DrayFoVO9jb3RCu0+BDE5OBczlbEfTqHDhpRQbGxH4KBYn?= =?us-ascii?q?br+tQt2a3IyL0LW18IHaaAVSgzz1NbR5MByetQLVp8IWhpFlLOA/0E2N6lBBfu?= =?us-ascii?q?ATwWJzORrHlB/54oK0/YV/2yVWofMoscBaB/bUZaM9GJNVFjhuCHwy4NXuvB/F?= =?us-ascii?q?BV+O4HUbemobiBYNGBTC6An/V5H39Cf34LkukBKGNNH7GOhnEQ+p6L1mHUfl?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DcAQA7J6tYZ7t+49ReHAEBBAEBCgEBF?= =?us-ascii?q?wEBBAEBCgEBgyZhgQmDW7NdJoV8AoJMQxQBAQEBAQEBAQEBARILCwsIHTGCMyC?= =?us-ascii?q?CHgYjMjQJAkICAlcGARIJiWoBCZAgnViCJotSAQEBAQEFAQEBAQEBEw+FWoVhh?= =?us-ascii?q?DAwgkAMLoJfBYkOknaBVwKFG5VjhlCTIjaBITQgFD6FAIFJdAGIU4I9AQEB?= X-IPAS-Result: =?us-ascii?q?A0DcAQA7J6tYZ7t+49ReHAEBBAEBCgEBFwEBBAEBCgEBgyZ?= =?us-ascii?q?hgQmDW7NdJoV8AoJMQxQBAQEBAQEBAQEBARILCwsIHTGCMyCCHgYjMjQJAkICA?= =?us-ascii?q?lcGARIJiWoBCZAgnViCJotSAQEBAQEFAQEBAQEBEw+FWoVhhDAwgkAMLoJfBYk?= =?us-ascii?q?OknaBVwKFG5VjhlCTIjaBITQgFD6FAIFJdAGIU4I9AQEB?= X-IronPort-AV: E=Sophos;i="5.35,187,1484002800"; d="asc'?scan'208";a="261340345" Received: from mout.kundenserver.de ([212.227.126.187]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-GCM-SHA256; 20 Feb 2017 18:29:14 +0100 Received: from office1.lan.sumadev.de ([85.183.69.161]) by mrelayeu.kundenserver.de (mreue005 [212.227.15.167]) with ESMTPSA (Nemesis) id 0LaHLm-1bwKCl35Re-00m3By; Mon, 20 Feb 2017 18:29:13 +0100 Received: from e130 (unknown [192.168.65.10]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id E5866DC05D; Mon, 20 Feb 2017 18:29:12 +0100 (CET) Message-ID: <1487611742.6296.10.camel@gerd-stolpmann.de> From: Gerd Stolpmann To: octachron , Caml-list Date: Mon, 20 Feb 2017 18:29:02 +0100 In-Reply-To: <69663638-7572-6553-1ef3-edd8f7c0ea9f@polychoron.fr> References: <69663638-7572-6553-1ef3-edd8f7c0ea9f@polychoron.fr> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-QCWBm2ViWDUVMwap/4Id" X-Mailer: Evolution 3.18.5.2-0ubuntu3.1 Mime-Version: 1.0 X-Provags-ID: V03:K0:RwMtA9ca6MB/fXhVcV7JT6aBQv9xlK6wxUV8U+PGtFKBQtzeY71 +zsrxU732YOsRAUHBGQgwWRtbWYakwOyBcOSbjp7MbN6eI8kNn9YKJeLsnIBBfSxTgINeyB 5y7JyTjkA/Np4jSxxwFUNK7DmbdPorb21SGOwkvR3MupRlydcATWS1HvduD+/9D2J3+ix7B zzrKK4bnB0GPN0hYuUgSA== X-UI-Out-Filterresults: notjunk:1;V01:K0:FzV0rANANes=:8t6HsliyH4d0N1cH/N6ymk aw6lGwhfWI8Vp2EHJSEXsuAHz/+OEVARG4+ArwnAJNvTcLZI0ZOO3+PndGf7beCPdPM28P30m J9ymZlB/V/OpdqQ4s8o5yDH6wYA9tSmFXUirgKhqq6RYeJBv7M46N9mJ66d1B68Krb09W6Bfb QTB7H+IygJ0c6QhbDEaBGyyCd3M0bHm5osL4+3GTZDD4GqwzcDAJuJT8DhNv1edqddN9eyCFe idbVFvodHybdTevx2oTVkpPUlxahWJAseYr2WXZk6cMVB4BrdzsFErk9hD5/UhZGrAeqVzwsD CCXlAGq+6q3tovRiMy6C44PI7R5kvpsOF0k3Ae6GvRLSldKbHm+0zJR9D9hMCwR/3bYRoGZlh PoYocpTwekhUiIo4LxtDz0czuhAtqlQ1NAYRKr4jzYR7fZlIB60zZs0w27c3oYpraEC9c0cRf IksCu15wJe7yTWGYYTKVFIWgNPmAmHThz5md5nTUR9YY3PvesN0Mmg4gv9refqY+CKLr/pK7s sNfPfUSkzqNWoaU0FBKh77IfbqPj9c3wsH+Q5EUMniGZj5JbVvT/tMy3JS2cOME651VNNdP/M C9QBipoYSdQEm0gzpM9Re8tv8O95B1lZ/Q2bhz20+e+NYpcEdzTaDdJwFr7zXw9J7uoaCm5li /ljAJi2fQ8/6b1pVTpoqZPU2c7IDgBO4ss5BuwCmsZ4ggWSqoBxdF18GXr7lW5NTsfYA= Subject: Re: [Caml-list] [ANN] codept 0.9: an alternative dependency analyzer for ocaml projects --=-QCWBm2ViWDUVMwap/4Id Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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=3D"ocamldep=3Dcodept" 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, >=20 > It is my pleasure to announce the release on opam of codept's first=C2=A0 > alpha version: > codept is a dependency analyzer for OCaml projects and an alternative > to=C2=A0 > ocamldep: https://github.com/Octachron/codept . >=20 >=20 > Compared to ocamldep, codept major features are: >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=E2=88=92 whole project analysis > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=E2=88=92 extensive warning and error messa= ges > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=E2=88=92 uniform handling of delayed alias= dependencies (aka "-no- > alias-deps") > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=E2=88=92 experimental full dependencies, w= hen dependencies up to=C2=A0 > transitive closure are not precise enough >=20 > Both ocamldep and codept compute an over-approximation of the > dependency=C2=A0 > graph of OCaml projects. However, codept uses whole project analysis > to=C2=A0 > reduce the number of fictitious dependencies inferred at the project=C2=A0 > scale, whereas ocamldep is, by design, limited to local file-by-file=C2=A0 > analysis. >=20 > Consequently, bugs notwithstanding, codept computes an exact > dependency=C2=A0 > graph in any situation that does not involve unknown external modules > or=C2=A0 > first class modules, and is still reliable in some standard use cases > of=C2=A0 > first class modules. >=20 > Moreover, codept will emit warning messages any time it encounters a=C2=A0 > source of potential inaccuracies in the dependency graph, thus > ensuring=C2=A0 > that computed dependencies are always exact in the absence of > warning=C2=A0 > messages. >=20 > Another important point is that codept's whole project analysis > feature=C2=A0 > makes it possible to handle uniformly the delayed dependency aspect > of=C2=A0 > module aliases introduced by the "-no-alias-deps" option. >=20 > At last, in situation where dependencies up to transitive closure > are=C2=A0 > not precise enough, codept's experimental "-expand-deps" option can=C2=A0 > track more precisely type aliases induced dependencies, making it > easier=C2=A0 > to track all cmi files required to compile a given file for instance. >=20 > Basic performance measures indicate that the average time increase > when=C2=A0 > compared to ocamldep.opt ranges between 10% to 50%. >=20 > Codept can be used directly as a drop-in replacement to ocamldep.=C2=A0 > However, to be fully effective codept needs to be feed information > on=C2=A0 > the whole project. Consequently, some build systems require some=C2=A0 > adaptations. As a first step, codept is distributed with an > ocamlbuild=C2=A0 > plugin subpackage that adapts ocamlbuild dependency computation to=C2=A0 > codept's needs. Integration with other build tools is still a work > in=C2=A0 > progress. >=20 > More information is available at https://github.com/Octachron/codept > . >=20 > =E2=88=92 octachron >=20 >=20 >=20 --=20 ------------------------------------------------------------ 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 ------------------------------------------------------------ --=-QCWBm2ViWDUVMwap/4Id Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABCAAGBQJYqydeAAoJEAaM4b9ZLB5TtkkH/jjdFKhdxxLiPACIspy9jKAq aXzmrgcjaPnYeVO2i2V4BpFoI8vz2kRTBGNuj1h6IHDIjD+O76V219IvypUSioeC YdzM1dT7GClq3irSfuPcykHOc7B3W7Tm8Ti0MrgcflqQlNz2820uzmcqV7kQM/5M ZtXZwnifZhTU9k0th/kj4MLUCbtwc7zPVoZt43JfnA604Z2m7S5YmyE9KU4RDxvF ZQmiSKPhgIayLPDmjIjky2oDLVOvSx730b7Ymt6esAqYbOTXljNSqpXUPbGx/K35 +228DKcP5jjb3AbNaqWG6UloVTudDdKJqRMR04dUJYOc1YZbvvud1wHYEXgi39U= =sryH -----END PGP SIGNATURE----- --=-QCWBm2ViWDUVMwap/4Id--