[Openmcl-cvs-notifications] Commit: ccl/level-0

gb at clozure.com gb at clozure.com
Mon Sep 5 01:10:33 MDT 2005


Affected files with versions:
  l0-hash.lisp,1.15
-----------------------------------
Details:

  Update of /usr/local/tmpcvs/ccl-0.14-dev/ccl/level-0
  In directory clozure.com:/tmp/cvs-serv10715/level-0
  
  Modified Files:
  	l0-hash.lisp 
  Log Message:
  Lots of changes.
  
  This code hasn't really supported any kind of concurrent access in a long
  time, so a lot of things (nhash.lock, nhash.locked-additions) have been
  adding some combination of clutter/overhead here.
  
  Inline a lot more, use more aggressive OPTIMIZE declarations.
  
  Try to avoid UNWIND-PROTECT overhead associated with locking and unlocking,
  disabling interrupts, inhibiting GC: wait for/grab the lock early, disable
  interrupts while doing so, assume that unlocking happens (without need
  to use UNWIND-PROTECT) because code is uninterruptible.
  
  Try to enforce restrictions on (SETF GETHASH)/REMHASH behavior while
  mapping is in effect.  (Needs work.)
  
  Represent keys in deleted key/value pairs as SLOT-UNBOUND-MARKERs, so
  that we can tell whether an entry is empty or deleted with a single
  memory reference.
  
  Try to avoid excessive generality by using specialized lookup functions
  (at least for EQ/EQL tables).  Might want to define these via MACROLET'ed
  code, since there's a lot of redundancy here; see %HASH-PROBE (which
  also tries to specialize the redundancy.


More information about the Openmcl-cvs-notifications mailing list