[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DO-SYMBOLS: duplicates and shadowings

My reading of the do-symbols documentation was that "the symbols of a
package" was a colloquialism for "symbols accessible in a package", and
hence it should include the inherited symbols -- the Spice code I saw
appeared to be buggy on that score.

Perhaps we should identify the needs and the costs of the two components
in your "revised" suggestion.  
1) I have no need [currently!] for removal of duplicates, but would be
   willing to listen to someone who claims such a need.  As for cost
   of implementing this, it sounds like Hedricks 3+ hashtable lookups
   [on average] per symbol "done" is th best contender.  That could
   easily make some simple cases an order of magnitude slower.
2) In at least one case I know of, it would be rather disastrous for a
   shadowed symbol to be "done", in addition to the shadowing counterpart.
   As for cost of removing shadowed potential inheritees, I would like
   to hear some estimates on the average number of shadowing symbols
   in a package that has an earnest need for some shadowing.  The one
   example I can think of off-hand is a language emulator which is a
   variant on Common Lisp -- the non-standard, conflicting definitions
   have to be shadowed; in the example I'm thinking of, it is still less 
   than 100 shadowings.  The answer to this question may affect the
   strategy for shadowed-symbol omission, and hence the cost.

Just for the record, one may have duplicates arise because the same
symbol is inherited from several different used packages; IMPORT is not
the only villain here.

-- JonL --