0.9.16.32: weak hash tables
authorGabor Melis <mega@hotpop.com>
Fri, 15 Sep 2006 14:39:44 +0000 (14:39 +0000)
committerGabor Melis <mega@hotpop.com>
Fri, 15 Sep 2006 14:39:44 +0000 (14:39 +0000)
commit1479483c5f40fc470053da0fc5cd8e42fc77676e
tree47a234a659d9d68408ecff0cbbf313ab578c573c
parent93db5c1b87b1cf58533c503c78401b817d7208d8
0.9.16.32: weak hash tables
  The implementation is based on cmucl's weak hash table code.

  * scav_vector defers scavenging of weak hash tables until ...

  * ... newspace scavenging at which time the deferred weak hash
    tables are scavenged according to their WEAKNESS type (this
    happens after each scan of newspace)

  * finally just before weak pointers are scanned (i.e. with the
    purpose of breaking them) the weak hash tables are scanned (i.e.
    the appropriate entries are removed) too.
15 files changed:
NEWS
package-data-list.lisp-expr
src/code/hash-table.lisp
src/code/target-hash-table.lisp
src/compiler/fndb.lisp
src/compiler/generic/parms.lisp
src/compiler/x86/parms.lisp
src/runtime/cheneygc.c
src/runtime/gc-common.c
src/runtime/gc-internal.h
src/runtime/gencgc.c
tests/compiler.pure.lisp
tests/hash.impure.lisp
tests/stress-gc.lisp
version.lisp-expr