From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 0A84C7FBC6 for ; Thu, 8 Jan 2015 16:33:56 +0100 (CET) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of goswin-v-b@web.de) identity=pra; client-ip=212.227.17.12; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of goswin-v-b@web.de designates 212.227.17.12 as permitted sender) identity=mailfrom; client-ip=212.227.17.12; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.web.de) identity=helo; client-ip=212.227.17.12; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="postmaster@mout.web.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak8AAPuirlTU4xEMnGdsb2JhbABcg1hYxX2FdwKBD0MBAQEBAREBAQEBAQYNCQkULoQNAQUyAVYLGAklDwUoiEsBFAQJwjQfg3UBAQgCAR+QABaDAIETBZF2hUOBP4RJDItbhBFuAQGCQQEBAQ X-IPAS-Result: Ak8AAPuirlTU4xEMnGdsb2JhbABcg1hYxX2FdwKBD0MBAQEBAREBAQEBAQYNCQkULoQNAQUyAVYLGAklDwUoiEsBFAQJwjQfg3UBAQgCAR+QABaDAIETBZF2hUOBP4RJDItbhBFuAQGCQQEBAQ X-IronPort-AV: E=Sophos;i="5.07,723,1413237600"; d="scan'208";a="116210611" Received: from mout.web.de ([212.227.17.12]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 08 Jan 2015 16:33:45 +0100 Received: from frosties.localnet ([134.3.241.185]) by smtp.web.de (mrweb102) with ESMTPSA (Nemesis) id 0MKrPw-1Y9F5k05ey-00051y for ; Thu, 08 Jan 2015 16:33:44 +0100 Received: from mrvn by frosties.localnet with local (Exim 4.82) (envelope-from ) id 1Y9F5i-0001QR-AW for caml-list@inria.fr; Thu, 08 Jan 2015 16:33:42 +0100 Date: Thu, 8 Jan 2015 16:33:42 +0100 From: Goswin von Brederlow To: caml-list@inria.fr Message-ID: <20150108153342.GB4890@frosties> References: <20150108133111.GA3745@pl-59055.rocqadm.inria.fr> <54AE8A9C.5090304@glondu.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <54AE8A9C.5090304@glondu.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Provags-ID: V03:K0:CMwIatA38MipMQjnUati6ipHfJwI11PbV4Xu482c1MR7iHunWng HoU87LX869KIQBBEM65ftJqq5C0XMbEmae8rRCr4vUd7CJJAZgeOWliQP0hTAvAbYyOLbFk Nag3bNyrWUMMkOf7hvMjQJYrCzno5QI+NLfDWAP+H0O0yZiv0DS0m61seb8CvzBzzFeLeW1 bN+vAWaE9W0PvKmSlTdGg== X-UI-Out-Filterresults: notjunk:1; Subject: Re: [Caml-list] Detecting dead code, discovering a project's structure... 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