>>>> "Ville" == Ville Skytt <Ville>
writes: 
    Ville> Yep, of course they're not.  But listing all requirements,
    Ville> direct and indirect/recursive, just shouldn't happen IMO.
    Ville> When time passes and some of the package X's directly
    Ville> required packages' requirements change, it will either lead
    Ville> to missing/extra REQUIRES stuff in package X, or to
    Ville> maintenance hell.
Er, no.  That is not maintenance hell.  _This_ is:
 ;; Here's a neat function.
+;; I think so, too, and it's really the only entry point.
+;; So let's autoload it and get rid of some #'requires...
+;;;###autoload
 (defun really-neat-function () ; ...
Charles Waldman did some work on generating a graph of dependencies.
You might search the archives (late 1999?).  However, he did it in
Python, and this really should be done in Emacs Lisp (see below).
I think that all the necessary information is in the Makefile and
auto-autoloads.el ... oops, no, you do have to grep out all the
#'requires (Makefile REQUIRES is currently unreliable because
human-generated).
I think a two-pass algorithm which first goes through all the files
and greps out all autoloaded symbols (watch out for eval-when
constructs and the like; defuns and defvars will not necessarily be at
top level), then checks for dependencies, is sufficient.
Pass 2 should be done by the byte compiler (hook in to the places
where we check for whether a variable is defined/used).  Pass 1 should
result in an auxiliary hashtable of symbols which says what they are
and where they are defined.  Probably this can be done by
`batch-update-autoloads' et al.
    Ville> Splitting packages into smaller chunks should help with
    Ville> this too.
I think it actually hurts, by increasing the number of possible (and
actual) transitive dependencies.
-- 
Institute of Policy and Planning Sciences     
http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
 My nostalgia for Icon makes me forget about any of the bad things.  I don't
have much nostalgia for Perl, so its faults I remember.  Scott Gilbert c.l.py