Skip to content
Snippets Groups Projects
Forked from cmucl / cmucl
Source project has a limited visibility.
  • rtoy's avatar
    e206ca4a
    Add support for weak value, key-and-value, and key-or-value hash · e206ca4a
    rtoy authored
    tables.  Use boot-2006-08-1-cross to cross-compile.  During worldload,
    you'll get a restart.  Choose the CLOBBER-IT restart.
    
    bootfiles/19c/boot-2006-08-1-cross.lisp:
    o Cross-compile script to mark that a cross-compile is needed.
      Nothing fancy, just load up the example scripts.
    
    code/hash-new.lisp:
    o Update the allowed values for the weak-p slot of a hash table.
    o Change hash table printer to print out the test and weak style.
    o Update MAKE-HASH-TABLE to allow other values for :weak-p keyword arg
      and set the weak-p slot appropriately.
    o Produce an error if a weak key, key-and-value, or key-or-value table
      is created but the test is not EQ or EQL.
    
    compiler/ppc/parms.lisp:
    compiler/sparc/parms.lisp:
    o Add :KEY, :VALUE, :KEY-AND-VALUE, and :KEY-OR-VALUE symbols to the
      static symbols because C code needs them.
    
    lisp/gencgc.c:
    o Add necessary support to handle the new hash types.
    e206ca4a
    History
    Add support for weak value, key-and-value, and key-or-value hash
    rtoy authored
    tables.  Use boot-2006-08-1-cross to cross-compile.  During worldload,
    you'll get a restart.  Choose the CLOBBER-IT restart.
    
    bootfiles/19c/boot-2006-08-1-cross.lisp:
    o Cross-compile script to mark that a cross-compile is needed.
      Nothing fancy, just load up the example scripts.
    
    code/hash-new.lisp:
    o Update the allowed values for the weak-p slot of a hash table.
    o Change hash table printer to print out the test and weak style.
    o Update MAKE-HASH-TABLE to allow other values for :weak-p keyword arg
      and set the weak-p slot appropriately.
    o Produce an error if a weak key, key-and-value, or key-or-value table
      is created but the test is not EQ or EQL.
    
    compiler/ppc/parms.lisp:
    compiler/sparc/parms.lisp:
    o Add :KEY, :VALUE, :KEY-AND-VALUE, and :KEY-OR-VALUE symbols to the
      static symbols because C code needs them.
    
    lisp/gencgc.c:
    o Add necessary support to handle the new hash types.