From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by pauillac.inria.fr; Mon, 14 Nov 94 11:54:39 +0100 Received: by pauillac.inria.fr; Mon, 14 Nov 94 11:38:33 +0100 From: Xavier Leroy Message-Id: <9411141038.AA04420@pauillac.inria.fr> Subject: Re: Dead code removal / cross references To: Judicael.Courant@lip.ens-lyon.fr (Judicael Courant) Date: Mon, 14 Nov 1994 11:38:32 +0100 (MET) Cc: caml-list@pauillac.inria.fr In-Reply-To: <9411100811.AA02292@lip.ens-lyon.fr> from "Judicael Courant" at Nov 10, 94 09:11:51 am X-Mailer: ELM [version 2.4 PL21] Content-Type: text/plain Sender: weis@pauillac.inria.fr > j'aimerais disposer d'outils permettant d'avoir des > références croisées > quels modules sont utilisés par tel module ? La distribution contient un script (src/runtime/camldep) qui produit des listes de dependances pour make. Essentiellement, il determine quels modules sont references (via #open ou la notation __) dans un fichier source. Cet outil n'est pas 100% exact (p.ex. le code mis en commentaires n'est pas ignore), mais fait l'affaire pour un Makefile. > ou est définie telle fonction ? L'outil mletags (contrib/mletags dans la distribution) fait a peu pres ca. Il construit un "tag file" pour Emacs qui indexe les definitions de globaux. > ou est appelée telle fonction ? Les fonctions etant des valeurs de premiere classe, la reponse exacte a cette question est difficile. > détecter et éliminer les #open inutiles Ca serait utile, en effet, mais ca n'est pas facile. > et le code mort (relativement a un ou des fichiers donnés). Le linker elimine le code des phrases qui definissent des globaux jamais references (pourvu que ces phrases n'aient evidemment pas d'effets de bord). - Xavier Leroy