From: Nikodemus S. <de...@us...> - 2010-04-07 15:25:03
|
Update of /cvsroot/sbcl/sbcl/src/code In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv27417/src/code Modified Files: target-hash-table.lisp Log Message: 1.0.37.52: better MAKE-HASH-TABLE :WEAKNESS documentation Thanks to Attila Lendvai and Nathan Froyd. Index: target-hash-table.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/target-hash-table.lisp,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- target-hash-table.lisp 21 May 2009 09:56:16 -0000 1.52 +++ target-hash-table.lisp 7 Apr 2010 15:24:54 -0000 1.53 @@ -258,16 +258,25 @@ HASH-FUNCTION is expected to return a non-negative fixnum hash code. :WEAKNESS - If NIL (the default) it is a normal non-weak hash table. If one - of :KEY, :VALUE, :KEY-AND-VALUE, :KEY-OR-VALUE it is a weak hash table. - Depending on the type of weakness the lack of references to the key and - the value may allow for removal of the entry. If WEAKNESS is :KEY and the - key would otherwise be garbage the entry is eligible for removal from the - hash table. Similarly, if WEAKNESS is :VALUE the life of an entry depends - on its value's references. If WEAKNESS is :KEY-AND-VALUE and either the - key or the value would otherwise be garbage the entry can be removed. If - WEAKNESS is :KEY-OR-VALUE and both the key and the value would otherwise - be garbage the entry can be removed. + When :WEAKNESS is not NIL, garbage collection may remove entries from the + hash table. The value of :WEAKNESS specifies how the presence of a key or + value in the hash table preserves their entries from garbage collection. + + Valid values are: + + :KEY means that the key of an entry must be live to guarantee that the + entry is preserved. + + :VALUE means that the value of an entry must be live to guarantee that + the entry is preserved. + + :KEY-AND-VALUE means that both the key and the value must be live to + guarantee that the entry is preserved. + + :KEY-OR-VALUE means that either the key or the value must be live to + guarantee that the entry is preserved. + + NIL (the default) means that entries are always preserved. :SYNCHRONIZED If NIL (the default), the hash-table may have multiple concurrent readers, |