[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: do-xxx-symbols
There are at least four reasons why the description of DO-SYMBOLS does
not appear to include symbols in used packages:
1) "do-symbols provides straightforward iteration over the symbols
of a package". Searching all the used packages is not straightforward
iteration over the package.
2) There is an implication that UNINTERN can be called to remove symbols
from the package. UNINTERN'ing a symbol in a used package does not
exactly remove it from the package under discussion.
3) It is said that every symbol is processed once. In DO-ALL-SYMBOLS
there is an explicit warning that symbols may occur more than once. The
implication is that this is not true for DO-SYMBOLS. If DO-SYMBOLS
was supposed to look at used packages, then the same warning would
apply to it.
4) DO-EXTERNAL-SYMBOLS says that it is like DO-SYMBOLS, but only
the external symbols of the specified package are used. The wording
of DO-EXTERNAL-SYMBOLS seems to imply even more clearly that only
the specified package is scanned, not any used packages. It also seems
to imply that DO-SYMBOLS does the same thing, but for both internal and
external symbols.
Can we get an authoritative statement about what is covered by
DO-SYMBOLS and DO-EXTERNAL-SYMBOLS, and about whether duplicates and
shadowed symbols should be removed? I think this question is
separate from the APROPOS question. APROPOS with no argument is
documented as using DO-ALL-SYMBOLS. But with an argument it is not
said to use DO-SYMBOLS. So it would be perfectly acceptable to
say that DO-SYMBOLS looks only at the symbols in a particular
package, whereas APROPOS following the used chain. (Indeed that is
what I have done for the moment.)
-------