[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue: HASH-TABLE-GC (no proposal)
- To: Kent M Pitman <KMP@scrc-stony-brook.arpa>, JonL%lucid.com@NSS.Cs.Ucl.AC.UK
- Subject: Re: Issue: HASH-TABLE-GC (no proposal)
- From: Jeff Dalton <jeff%aiai.edinburgh.ac.uk@NSS.Cs.Ucl.AC.UK>
- Date: Fri, 21 Oct 88 15:49:34 BST
- Cc: CL-Cleanup@sail.stanford.edu
- In-reply-to: Kent M Pitman's message of Tue, 18 Oct 88 13:42 EDT
I think Kent's message has it just right.
I've been allocated for a week and have not had time to do anything
about a proposal. But to try to clear up a few points:
1. There is some question about whether weak-key hash tables are
the right way to provide something of this sort. On balance,
I think they are. There were suggestions on the CL list that
weak pointers and finalization were better or at least more
fundamental, but I think something based on hash tables is
the (or at least a) right user-level facility to provide.
Weak pointers, finalization, and so forth should be considered
spearate issues.
2. Precedent. It's true that there isn't much in the way of
current practice in Common Lisp, but the idea is not untested.
Temporary properties have been in Pop implementations for
many years and, despite the name, they really are just hash
tables. Lisp/VM also seems to have them (but I can't be sure
because I have only the documentation).
3. Need. Hash tables are often used as a way to add properties
(i.e., extra slots) to objects. Imagine, say, that SYMBOL-PLIST
was implemented not as part of the symbol but using a hash table.
That seems reasonable until you realized than then any symbol
with a plist could never be collected. I should think that
this problem greatly limits the usefulness of hash tables in
many applications.
In case anyone is wondering "which Kent message?", it's the one
that said this:
> ... Anyone else know of other "actual needs"?
> - In my work with Cloe (internally at Symbolics), I've had need to
> record various kinds of attribute information about non-symbols.
> All of these items need hash table with weak key links only.
> All of these items cause the accumulation of massive amounts of
> garbage over time with no (semantically valid) hope of recovery
> in the absence of weak hash tables.
> Yet problems that demand this sort of solution continue to hit people
> who have no access to such low-level/bit-twiddly solutions.
> There may be some little details to attend to, but abstractly the idea
> of a table with weak key links is both simple and powerful.
-- Jeff