Subject: Re: (make-hash-table :test #'mytest)
From: Erik Naggum <erik@naggum.no>
Date: 05 Nov 2002 22:30:40 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3245524240078182@naggum.no>

* Michael Hudson
| How do you efficiently tell which hashtables a given object is in?  I
| can't think of a blindly obvious way of doing that.  I haven't spent long
| thinking about it, so sorry if I'm just being dumb.

  You are not allowed to change the key in a way that would change the
  value of the test function applied to it.  This is not when rehashing
  takes place.  Rehashing takes place when you have an `eq´ hashtable of
  objects that do not have an internal hash code (such as is commonly done
  with symbols), and a garbage collection moves the objects around.  As
  Duane explained, there is no point in actually performing the rehash
  until the hash-table is accessed after a garbage collection that actually
  moved an object.  The information necessary to make this decision is all
  local to the hash-table.

-- 
Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.