Version française
Home     About     Download     Resources     Contact us    
Browse thread
Re: Dead code removal / cross references
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Xavier Leroy <xleroy@p...>
Subject: Re: Dead code removal / cross references
> 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