[Openmcl-devel] eql and equal hash tables help please

Robert Goldman rpgoldman at sift.info
Thu Jan 17 07:40:21 PST 2013


On 1/17/13 Jan 17 -9:30 AM, R. Matthew Emerson wrote:
> 
> On Jan 17, 2013, at 3:32 AM, George Khouri <gk1 at four-four.com> wrote:
> 
>> namestrings do serve as a workaround, and so does an EQL hash table with pathnames - I just wanted to clarify whether  EQUAL hash tables should work with a large number of pathnames.  CCL stores the first 10k entries in a second or two on my system. It's after that that things aren't pretty.
> 
> I think that what Gary was trying to point out is that CCL seems to be doing a poor to terrible job of hashing pathname objects.  He gave an example where two (slightly) different pathnames hash to the same code.  At the risk of stating the obvious, hash tables don't tend to work well if there are a lot of hash collisions like this...
> 
> So, the bad performance that you're seeing may be due to that defect in CCL.  There's nothing wrong in principle with using an equal hash table with a lot of pathname keys.
> 
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel
> 

Aren't EQUAL and EQUALP hash-tables prone to behave badly in CL in
general?  It seems like we don't give the compiler much help in figuring
out how to hash the contents of such tables....

Would hashing the namestrings work better, because most CL
implementations have hash functions that work well on strings?

best,
r




More information about the Openmcl-devel mailing list