| 
     
      
      
      From: Andreas K. <and...@ac...> - 2008-12-12 19:17:58
      
     
   | 
> Quoting dg...@ni...: > > As I've sketched this, there's one troubling implication, > > and that is there is one group who are measurably > > worse off, and that is the authors of packages who > > have chosen all lowercase names. ... > > Daniel Steffen has pointed out to me in the chat the > source of my difficulty. By stubbornly trying to > solve this in Tcl only, I'm limited to the storage > present in the current [package] implementation, > which is a single table. My so-called "real" and > "phony" entries are forced into one table which > causes the collisions and confusions I note above. > > Drop into C and the addition of a second table isn't > hard. It was even part of the TIP 339 Implementaion, > if I followed that right. Doing so can keep the > existing table functioning undisturbed. Yes. The reference implementation used a second hashtable. The original table kept all the exact package names as keys. The second table contained the case-folded form as keys. Both tables shared the 'struct Package' however. All packages with the same case-folded form are linked together, the first in the list is the one used where the TIP specified 'first registered' ... Note that using a pure-Tcl solution _does not_ prevent us from using a second table. We can have one, it would just be an array variable. -- Andreas Kupries <and...@Ac...> Developer @ http://www.ActiveState.com Tel: +1 778-786-1122  |