1@code{(require 'vet)} 2@ftindex vet 3 4 5@defun vet-slib file1 @dots{} 6 7Using the procedures in the @code{top-refs} and @code{manifest} 8modules, @code{vet-slib} analyzes each SLIB module and @var{file1}, @dots{}, reporting 9about any procedure or macro defined whether it is: 10 11@table @asis 12 13@item orphaned 14defined, not called, not exported; 15@item missing 16called, not defined, and not exported by its @code{require}d modules; 17@item undocumented-export 18Exported by module, but no index entry in @file{slib.info}; 19 20@end table 21 22And for the library as a whole: 23 24@table @asis 25 26@item documented-unexport 27Index entry in @file{slib.info}, but no module exports it. 28 29@end table 30 31This straightforward analysis caught three full days worth of 32never-executed branches, transitive require assumptions, spelling 33errors, undocumented procedures, missing procedures, and cyclic 34dependencies in SLIB. 35 36The optional arguments @var{file1}, @dots{} provide a simple way to vet 37prospective SLIB modules. 38@end defun 39 40