Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
user avatar
rtoy authored
o Add a new slot to the hash-table structure for GC to use for linking
  weak tables together.  (Previously we used the weak-p slot for
  this.  Let's make it explicit, now.  Plus, this allows us to use
  weak-p to indicate other types of weak tables, should they be
  implemented.)

lisp/gencgc.c:
o Update defstruct appropriately.
o Use the new next-weak-table slot to chain the weak tables together.
o Previously we scanned the weak tables in several places in the
  code.  However, this scanning also removed entries.  I don't think
  we want that because later scans could make a key valid.  Thus:

  - Change scav_hash_entries so that it doesn't remove a hash-table
    entry unless told to.
  - Add new function to scavenge weak tables without removing a weak
    entry.
  - Adjust scan_weak_tables to remove weak entries.

NOTE:  When building, you'll be asked twice about the hash-table
structure changing size.  Just select the CLOBBER-IT restart in both
cases.
12d78e25
History
Name Last commit Last update