More meaningful error message for OPEN :IF-EXISTS :NEW-VERSION
[sbcl.git] / doc / internals-notes / threading-specials
index adfe42c..4b4cfd3 100644 (file)
@@ -15,19 +15,18 @@ The goals are
 
        When looking at a particular symbol, please annotate it in
        this file when you figure out what it's for and how it's
 
        When looking at a particular symbol, please annotate it in
        this file when you figure out what it's for and how it's
-       changed.  To give us some confidence that we have reasonable
-       coverage, please don't just delete it if it looks ok.  Symbols
+       changed. To give us some confidence that we have reasonable
+       coverage, please don't just delete it if it looks ok. Symbols
        shoud only be deleted here if they're obviously not specials
        at all (e.g. functions with * in their names), or if the same
        shoud only be deleted here if they're obviously not specials
        at all (e.g. functions with * in their names), or if the same
-       commit actually rids SBCL of the symbol itself (as we may soon
-       do for e.g. SB-SYS:*TASK-SELF*).  Otherwise, just add a
-       comment saying "read-only" or "unused" or whatever.
+       commit actually rids SBCL of the symbol itself. Otherwise,
+       just add a comment saying "read-only" or "unused" or whatever.
 
        (3) anything else that comes to mind as potential trouble
         spots.  Global state in closures, etc etc
            
        (4) suggest strategies (e.g. rewrites of affected code, suitable
 
        (3) anything else that comes to mind as potential trouble
         spots.  Global state in closures, etc etc
            
        (4) suggest strategies (e.g. rewrites of affected code, suitable
-       locks and lock acquitision/release places) to fix the issues
+       locks and lock acquisition/release places) to fix the issues
        revealed in (2) and (3)
        
        (5) implement same
        revealed in (2) and (3)
        
        (5) implement same
@@ -98,283 +97,287 @@ SB-LOOP::*LOOP-BIND-STACK*
 
 = PCL
 
 
 = PCL
 
-The PCL authors thought a bit about thread safety, adding
-(without-interrupts ...) in some places to protect critical forms.
-We've implemented their without-interrupts macro as an acquitision of
-*pcl-lock*, so we hope they've done it properly.
+Critical parts of PCL are protected by *world-lock* (particularly
+those dealing with class graph changes), and some with finer-grained locks.
+
+accesses locked with a nice granularity
+   SB-PCL::*CLASSOID-CELLS*
+
+read-only & safe:
+   SB-PCL::*BUILT-IN-TYPEP-COST* 
+   SB-PCL::*CACHE-EXPAND-THRESHOLD* 
+   SB-PCL::*CACHE-LOOKUP-COST* 
+   SB-PCL::*CASE-TABLE-LIMIT* 
+   SB-PCL::*CHECK-CACHE-P* 
+   SB-PCL::*COMPUTE-STD-CPL-CLASS->ENTRY-TABLE-SIZE* 
+   SB-PCL::*EQ-CASE-TABLE-LIMIT* 
+   SB-PCL::*NON-BUILT-IN-TYPEP-COST* 
+   SB-PCL::*NON-VAR-DECLARATIONS* 
+   SB-PCL::*SECONDARY-DFUN-CALL-COST* 
+   SB-PCL::*SGF-WRAPPER* 
+   SB-PCL::*STRUCTURE-TYPEP-COST*
+   SB-PCL::*UNSPECIFIC-ARG* 
+   SB-PCL::*VAR-DECLARATIONS-WITH-ARG* 
+   SB-PCL::*WRAPPER-OF-COST* 
+
+bound & safe:
+   SB-PCL::*ALLOW-FORWARD-REFERENCED-CLASSES-IN-CPL-P* 
+   SB-PCL::*IN-OBSOLETE-INSTANCE-TRAP* 
+   SB-PCL::*PRECOMPILING-LAP* 
+   SB-PCL::*CACHE-MISS-VALUES-STACK* 
+
+protected by PCL-LOCK:
+   SB-PCL::*PREVIOUS-NWRAPPERS* 
+
+believed protected by the compiler-lock:
+   SB-PCL::*ALL-CTORS* 
+   SB-PCL::*FGENS* 
+   SB-PCL::*SGF-DFUN-STATE-INDEX* 
+   SB-PCL::*VAR-DECLARATIONS-WITHOUT-ARG* 
+
+potentially unsafe:
+   SB-PCL::*CLASS-EQ-SPECIALIZER-METHODS* 
+   SB-PCL::*EFFECTIVE-METHOD-CACHE* 
+   SB-PCL::*EQL-SPECIALIZER-METHODS* 
+   SB-PCL::*METHOD-FUNCTION-PLIST* 
+   SB-PCL::*PV-KEY-TO-PV-TABLE-TABLE* 
+   SB-PCL::*PV-TABLE-CACHE-UPDATE-INFO* 
+   SB-PCL::*PVS* 
+   SB-PCL::*SLOT-NAME-LISTS-INNER* 
+   SB-PCL::*SLOT-NAME-LISTS-OUTER* 
+
+debugging / profiling -- low relevance:
+   SB-PCL::*DFUN-COUNT* 
+   SB-PCL::*ALLOW-EMF-CALL-TRACING-P* 
+
+build-options and bootstrap machinery -- irrelevant for user-code:
+   SB-PCL::*ALLOW-EXPERIMENTAL-SPECIALIZERS-P* 
+   SB-PCL::*BOOT-STATE* ; pseudoconstant in finished lisp (not in bootstrap)
+   SB-PCL::*BUILT-IN-CLASS-SYMBOLS* 
+   SB-PCL::*BUILT-IN-CLASSES* 
+   SB-PCL::*BUILT-IN-WRAPPER-SYMBOLS* 
+   SB-PCL::*CHECKING-OR-CACHING-LIST* 
 
 
-SB-PCL::*STRUCTURE-TYPEP-COST* 
-SB-PCL::*SLOT-NAME-LISTS-OUTER* 
-SB-PCL::*THE-WRAPPER-OF-T* 
-SB-PCL::*CREATE-CLASSES-FROM-INTERNAL-STRUCTURE-DEFINITIONS-P* 
-SB-PCL::*WRITERS-FOR-THIS-DEFCLASS*
-SB-PCL::*BOOT-STATE* ; pseudoconstant in finished lisp (not in bootstrap)
-SB-PCL::*THE-WRAPPER-OF-BIT-VECTOR* 
 ;;; global, frobbed on generic function
 ;;; initialization/reinitialization, method precomputation, and
 ;;; compute-effective-method.  Potentially unsafe, may be OK because
 ;;; of *pcl-lock*, but could easily be liable to races.
 ;;; global, frobbed on generic function
 ;;; initialization/reinitialization, method precomputation, and
 ;;; compute-effective-method.  Potentially unsafe, may be OK because
 ;;; of *pcl-lock*, but could easily be liable to races.
-SB-PCL::*EFFECTIVE-METHOD-CACHE* 
-SB-PCL::*THE-WRAPPER-OF-COMPLEX-DOUBLE-FLOAT* 
-SB-PCL::*THE-CLASS-COMPLEX-DOUBLE-FLOAT* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SINGLE-FLOAT* 
-SB-PCL::*CACHE-LOOKUP-COST* 
-SB-PCL::*SLOT-NAME-LISTS-INNER* 
-SB-PCL::*MF2P* 
-SB-PCL::*THE-CLASS-RATIONAL* 
-SB-PCL::WRAPPER-CLASS* 
-SB-PCL::*PREVIOUS-NWRAPPERS* 
-SB-PCL::*MF1* 
-SB-PCL::*THE-CLASS-STANDARD-OBJECT* 
-SB-PCL::*THE-CLASS-CONDITION-DIRECT-SLOT-DEFINITION* 
-SB-PCL::*THE-CLASS-RATIO* 
-SB-PCL::*SHOW-MAKE-UNORDERED-METHODS-EMF-CALLS* 
-SB-PCL::*ALL-CTORS* 
-SB-PCL::*SUBTYPEP 
-SB-PCL::*THE-WRAPPER-OF-LRA* 
-SB-PCL::*INITFUNCTIONS-FOR-THIS-DEFCLASS*
-SB-PCL::*STANDARD-SLOT-VALUE-USING-CLASS-METHOD* 
-SB-PCL::*EMPTY-PV* 
-SB-PCL::*CACHE-EXPAND-THRESHOLD* 
-SB-PCL::*THE-CLASS-INTEGER* 
-SB-PCL::*SGF-DFUN-STATE-INDEX* 
-SB-PCL::*ALL-PV-TABLE-LIST* 
-SB-PCL::*THE-WRAPPER-OF-RANDOM-CLASS* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-COMPLEX-SINGLE-FLOAT* 
-SB-PCL::*THE-CLASS-FDEFN* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-32* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-VECTOR* 
-SB-PCL::*CHECK-CACHE-P* 
-SB-PCL::*SGF-WRAPPER* 
+
+SB-PCL::*CONDITION-SETF-SLOT-VALUE-USING-CLASS-METHOD* 
+SB-PCL::*CONDITION-SLOT-BOUNDP-USING-CLASS-METHOD* 
 SB-PCL::*CONDITION-SLOT-VALUE-USING-CLASS-METHOD* 
 SB-PCL::*CONDITION-SLOT-VALUE-USING-CLASS-METHOD* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-BIT-VECTOR* 
-SB-PCL::*THE-CLASS-SPECIALIZER* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-COMPLEX-DOUBLE-FLOAT* 
-SB-PCL::*THE-CLASS-STANDARD-CLASS* 
-SB-PCL::*THE-CLASS-STANDARD-ACCESSOR-METHOD* 
-SB-PCL::*THE-CLASS-STANDARD-READER-METHOD* 
-SB-PCL::*THE-WRAPPER-OF-DOUBLE-FLOAT* 
-SB-PCL::*NON-BUILT-IN-TYPEP-COST* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-8* 
-SB-PCL::*THE-CLASS-DOCUMENTATION-MIXIN* 
-SB-PCL::*EMF-CALL-TRACE-SIZE* 
-SB-PCL::*OLD-C-A-M-GF-METHODS* 
-SB-PCL::*EMPTY-CACHE* 
-SB-PCL::*THE-WRAPPER-OF-SYMBOL* 
-SB-PCL::*THE-CLASS-STANDARD-METHOD-COMBINATION* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-DOUBLE-FLOAT* 
-SB-PCL::*THE-CLASS-METHOD* 
-SB-PCL::*PRECOMPILING-LAP* 
-SB-PCL::*STRUCTURE-SLOT-BOUNDP-USING-CLASS-METHOD* 
-SB-PCL::*ENABLE-DFUN-CONSTRUCTOR-CACHING* 
-SB-PCL::*THE-CLASS-CONDITION-EFFECTIVE-SLOT-DEFINITION* 
-SB-PCL::*THE-WRAPPER-OF-STRUCTURE-OBJECT* 
-SB-PCL::*THE-CLASS-WEAK-POINTER* 
-SB-PCL::*STANDARD-SLOT-BOUNDP-USING-CLASS-METHOD* 
-SB-PCL::*THE-CLASS-FUNCALLABLE-STANDARD-OBJECT* 
-SB-PCL::*VAR-DECLARATIONS-WITH-ARG* 
-SB-PCL::*PV-TABLE-CACHE-UPDATE-INFO* 
-SB-PCL::*THE-WRAPPER-OF-STRING* 
-SB-PCL::*THE-CLASS-CONDITION* 
-SB-PCL::*THE-CLASS-PCL-CLASS* 
-SB-PCL::*THE-CLASS-CLASS* 
-SB-PCL::*PCL-LOCK*                         ; protecting the rest
+SB-PCL::*CREATE-CLASSES-FROM-INTERNAL-STRUCTURE-DEFINITIONS-P* 
+SB-PCL::*DFUN-ARG-SYMBOLS* 
+SB-PCL::*DFUN-CONSTRUCTORS* 
+SB-PCL::*DFUN-LIST* 
+SB-PCL::*DFUN-MISS-GFS-ON-STACK* 
+SB-PCL::*EARLY-CLASS-DEFINITIONS* 
+SB-PCL::*EARLY-CLASS-PREDICATES* 
+SB-PCL::*EARLY-CLASS-SLOTS* 
 SB-PCL::*EARLY-P* 
 SB-PCL::*EARLY-P* 
-SB-PCL::*PCL-CLASS-BOOT* 
-SB-PCL::*THE-CLASS-EFFECTIVE-SLOT-DEFINITION* 
-SB-PCL::*THE-WRAPPER-OF-CONS* 
-SB-PCL::*THE-CLASS-LRA* 
-SB-PCL::*THE-CLASS-EQL-SPECIALIZER* 
-SB-PCL::*EQL-SPECIALIZER-METHODS* 
-SB-PCL::*THE-WRAPPER-OF-FLOAT* 
-SB-PCL::*INITIAL-PV-TABLE* 
-SB-PCL::*THE-CLASS-COMPLEX-SINGLE-FLOAT* 
-SB-PCL::*STRUCTURE-SLOT-VALUE-USING-CLASS-METHOD* 
 SB-PCL::*EMF-CALL-TRACE* 
 SB-PCL::*EMF-CALL-TRACE* 
-SB-PCL::*IN-OBSOLETE-INSTANCE-TRAP* 
-SB-PCL::*BUILT-IN-CLASS-SYMBOLS* 
-SB-PCL::*FREE-HASH-TABLES* 
-SB-PCL::*THE-WRAPPER-OF-WEAK-POINTER* 
-SB-PCL::*THE-CLASS-RANDOM-CLASS* 
-SB-PCL::*PVS* 
-SB-PCL::*THE-WRAPPER-OF-REAL* 
-SB-PCL::*LONG-METHOD-COMBINATION-FUNCTIONS* 
+SB-PCL::*EMF-CALL-TRACE-INDEX* 
+SB-PCL::*EMF-CALL-TRACE-SIZE* 
 SB-PCL::*EMIT-FUNCTION-P* 
 SB-PCL::*EMIT-FUNCTION-P* 
-SB-PCL::*THE-CLASS-DOUBLE-FLOAT* 
-SB-PCL::*NAME->CLASS->SLOTD-TABLE* 
-SB-PCL::*DFUN-COUNT* 
-SB-PCL::*COMPUTE-STD-CPL-CLASS->ENTRY-TABLE-SIZE* 
-SB-PCL::*THE-CLASS-SYMBOL* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-16* 
-SB-PCL::*THE-CLASS-STANDARD-DIRECT-SLOT-DEFINITION* 
-SB-PCL::*THE-CLASS-EXACT-CLASS-SPECIALIZER* 
-SB-PCL::*THE-CLASS-FLOAT* 
-SB-PCL::*THE-CLASS-BASE-CHAR* 
-SB-PCL::*PV-KEY-TO-PV-TABLE-TABLE* 
-SB-PCL::*THE-CLASS-STD-CLASS* 
-SB-PCL::*THE-CLASS-SLOT-OBJECT* 
-SB-PCL::*OPTIMIZE-SPEED* 
-SB-PCL::*THE-CLASS-STRUCTURE-EFFECTIVE-SLOT-DEFINITION* 
-SB-PCL::*VAR-DECLARATIONS-WITHOUT-ARG* 
-SB-PCL::*THE-CLASS-INSTANCE* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-4* 
-SB-PCL::*THE-CLASS-CONS* 
-SB-PCL::*THE-WRAPPER-OF-FIXNUM* 
-SB-PCL::*THE-SYSTEM-II-METHOD* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-8* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-16* 
-SB-PCL::*THE-WRAPPER-OF-COMPLEX-SINGLE-FLOAT* 
-SB-PCL::*THE-WRAPPER-OF-SINGLE-FLOAT* 
-SB-PCL::*DFUN-MISS-GFS-ON-STACK* 
-SB-PCL::*THE-CLASS-CONDITION-CLASS* 
-SB-PCL::*THE-WRAPPER-OF-BIGNUM* 
-SB-PCL::*THE-CLASS-SPECIALIZER-WITH-OBJECT* 
-SB-PCL::*THE-CLASS-COMPLEX* 
-SB-PCL::*THE-WRAPPER-OF-INTEGER* 
-SB-PCL::*CONDITION-SLOT-BOUNDP-USING-CLASS-METHOD* 
-SB-PCL::*THE-CLASS-CHARACTER* 
-SB-PCL::*EARLY-CLASS-DEFINITIONS* 
-SB-PCL::*THE-WRAPPER-OF-NULL* 
+SB-PCL::*ENABLE-DFUN-CONSTRUCTOR-CACHING* 
+SB-PCL::*ENABLE-EMF-CALL-TRACING-P* 
+SB-PCL::*EQL-SPECIALIZER-TABLE* 
+SB-PCL::*GLOBAL-EFFECTIVE-METHOD-GENSYMS* 
+SB-PCL::*IN-GF-ARG-INFO-P* 
+SB-PCL::*IN-PRECOMPUTE-EFFECTIVE-METHODS-P* 
+SB-PCL::*INITFUNCTIONS-FOR-THIS-DEFCLASS*
 SB-PCL::*INTERNAL-PCL-GENERALIZED-FUN-NAME-SYMBOLS* 
 SB-PCL::*INTERNAL-PCL-GENERALIZED-FUN-NAME-SYMBOLS* 
-SB-PCL::*THE-CLASS-STRUCTURE-CLASS* 
-SB-PCL::*UNSPECIFIC-ARG* 
-SB-PCL::*SECONDARY-DFUN-CALL-COST* 
-SB-PCL::*THE-CLASS-SIMPLE-STRING* 
-SB-PCL::*THE-CLASS-STRUCTURE-SLOT-DEFINITION* 
-SB-PCL::*METHOD-FUNCTION-PLIST* 
-SB-PCL::*STANDARD-METHOD-COMBINATION* 
 SB-PCL::*LAZY-DFUN-COMPUTE-P* 
 SB-PCL::*LAZY-DFUN-COMPUTE-P* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-8* 
-SB-PCL::*THE-CLASS-STRING* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-2* 
-SB-PCL::*EQL-SPECIALIZER-TABLE* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-COMPLEX-DOUBLE-FLOAT* 
-SB-PCL::*BUILT-IN-WRAPPER-SYMBOLS* 
-SB-PCL::*THE-CLASS-STREAM* 
-SB-PCL::*CLASS-EQ-SPECIALIZER-METHODS* 
-SB-PCL::*THE-CLASS-REAL* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-32* 
-SB-PCL::*THE-CLASS-SIMPLE-VECTOR* 
-SB-PCL::*THE-CLASS-GENERIC-FUNCTION* 
-SB-PCL::*STANDARD-SETF-SLOT-VALUE-USING-CLASS-METHOD* 
-SB-PCL::*STD-CAM-METHODS* 
-SB-PCL::*THE-CLASS-STRUCTURE-DIRECT-SLOT-DEFINITION* 
-SB-PCL::*THE-WRAPPER-OF-FDEFN* 
-SB-PCL::*THE-WRAPPER-OF-VECTOR* 
-SB-PCL::*THE-CLASS-NULL* 
+SB-PCL::*LONG-METHOD-COMBINATION-FUNCTIONS* 
+SB-PCL::*MINIMUM-CACHE-SIZE-TO-LIST*
+SB-PCL::*NAME->CLASS->SLOTD-TABLE* 
+SB-PCL::*NEW-CLASS* 
 SB-PCL::*NORMALIZE-TYPE 
 SB-PCL::*NORMALIZE-TYPE 
+SB-PCL::*NOT-IN-CACHE* 
+SB-PCL::*OLD-C-A-M-GF-METHODS* 
+SB-PCL::*OPTIMIZE-CACHE-FUNCTIONS-P* 
+SB-PCL::*OPTIMIZE-SPEED* 
+SB-PCL::*PCL-CLASS-BOOT* 
+SB-PCL::*PCL-LOCK*                         ; protecting the rest
+SB-PCL::*PCL-PACKAGE* 
+SB-PCL::*RAISE-METATYPES-TO-CLASS-P* 
+SB-PCL::*READERS-FOR-THIS-DEFCLASS*
 SB-PCL::*REBOUND-EFFECTIVE-METHOD-GENSYMS*
 SB-PCL::*REBOUND-EFFECTIVE-METHOD-GENSYMS*
-SB-PCL::*THE-CLASS-NUMBER* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-STRING* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-30* 
-SB-PCL::*MF2CP* 
-SB-PCL::*THE-CLASS-DEPENDENT-UPDATE-MIXIN* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-32* 
-SB-PCL::*THE-CLASS-VECTOR* 
-SB-PCL::*FIND-CLASS* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-16* 
+SB-PCL::*SGF-ARG-INFO-INDEX* 
+SB-PCL::*SGF-METHOD-CLASS-INDEX* 
+SB-PCL::*SGF-METHODS-INDEX* 
+SB-PCL::*SGF-NAME-INDEX* 
+SB-PCL::*SGF-SLOTS-INIT* 
+SB-PCL::*SHOW-MAKE-UNORDERED-METHODS-EMF-CALLS* 
+SB-PCL::*SLOT-NAMES-FOR-THIS-DEFCLASS*
+SB-PCL::*SLOT-VECTOR-SYMBOLS* 
+SB-PCL::*STANDARD-CLASSES* 
+SB-PCL::*STANDARD-METHOD-COMBINATION* 
+SB-PCL::*STANDARD-SETF-SLOT-VALUE-USING-CLASS-METHOD* 
+SB-PCL::*STANDARD-SLOT-BOUNDP-USING-CLASS-METHOD* 
 SB-PCL::*STANDARD-SLOT-LOCATIONS* 
 SB-PCL::*STANDARD-SLOT-LOCATIONS* 
-SB-PCL::*FGENS* 
-SB-PCL::*PCL-PACKAGE* 
+SB-PCL::*STANDARD-SLOT-VALUE-USING-CLASS-METHOD* 
+SB-PCL::*STD-CAM-METHODS* 
+SB-PCL::*STRUCTURE-SETF-SLOT-VALUE-USING-CLASS-METHOD* 
+SB-PCL::*STRUCTURE-SLOT-BOUNDP-USING-CLASS-METHOD* 
+SB-PCL::*STRUCTURE-SLOT-VALUE-USING-CLASS-METHOD* 
+SB-PCL::*SUBTYPEP 
 SB-PCL::*THE-CLASS-ARRAY* 
 SB-PCL::*THE-CLASS-ARRAY* 
-SB-PCL::*CASE-TABLE-LIMIT* 
-SB-PCL::*THE-CLASS-METHOD-COMBINATION* 
+SB-PCL::*THE-CLASS-BASE-CHAR* 
+SB-PCL::*THE-CLASS-BIGNUM* 
+SB-PCL::*THE-CLASS-BIT-VECTOR* 
+SB-PCL::*THE-CLASS-BUILT-IN-CLASS* 
+SB-PCL::*THE-CLASS-CHARACTER* 
+SB-PCL::*THE-CLASS-CLASS* 
+SB-PCL::*THE-CLASS-CLASS-EQ-SPECIALIZER* 
+SB-PCL::*THE-CLASS-CLASS-PROTOTYPE-SPECIALIZER* 
+SB-PCL::*THE-CLASS-CODE-COMPONENT* 
+SB-PCL::*THE-CLASS-COMPLEX* 
+SB-PCL::*THE-CLASS-COMPLEX-DOUBLE-FLOAT* 
+SB-PCL::*THE-CLASS-COMPLEX-SINGLE-FLOAT* 
+SB-PCL::*THE-CLASS-CONDITION* 
+SB-PCL::*THE-CLASS-CONDITION-CLASS* 
+SB-PCL::*THE-CLASS-CONDITION-DIRECT-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-CONDITION-EFFECTIVE-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-CONDITION-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-CONS* 
+SB-PCL::*THE-CLASS-DEFINITION-SOURCE-MIXIN* 
+SB-PCL::*THE-CLASS-DEPENDENT-UPDATE-MIXIN* 
 SB-PCL::*THE-CLASS-DIRECT-SLOT-DEFINITION* 
 SB-PCL::*THE-CLASS-DIRECT-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-DOCUMENTATION-MIXIN* 
+SB-PCL::*THE-CLASS-DOUBLE-FLOAT* 
+SB-PCL::*THE-CLASS-EFFECTIVE-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-EQL-SPECIALIZER* 
+SB-PCL::*THE-CLASS-EXACT-CLASS-SPECIALIZER* 
+SB-PCL::*THE-CLASS-FDEFN* 
 SB-PCL::*THE-CLASS-FIXNUM* 
 SB-PCL::*THE-CLASS-FIXNUM* 
-SB-PCL::*THE-CLASS-STD-OBJECT* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-32* 
-SB-PCL::*EARLY-CLASS-PREDICATES* 
-SB-PCL::*WRAPPER-OF-COST* 
-SB-PCL::*STANDARD-CLASSES* 
+SB-PCL::*THE-CLASS-FLOAT* 
+SB-PCL::*THE-CLASS-FORWARD-REFERENCED-CLASS* 
+SB-PCL::*THE-CLASS-FUNCALLABLE-INSTANCE* 
+SB-PCL::*THE-CLASS-FUNCALLABLE-STANDARD-CLASS* 
+SB-PCL::*THE-CLASS-FUNCALLABLE-STANDARD-OBJECT* 
+SB-PCL::*THE-CLASS-FUNCTION* 
+SB-PCL::*THE-CLASS-GENERIC-FUNCTION* 
+SB-PCL::*THE-CLASS-INSTANCE* 
+SB-PCL::*THE-CLASS-INTEGER* 
+SB-PCL::*THE-CLASS-LIST* 
 SB-PCL::*THE-CLASS-LONG-METHOD-COMBINATION* 
 SB-PCL::*THE-CLASS-LONG-METHOD-COMBINATION* 
-SB-PCL::*READERS-FOR-THIS-DEFCLASS*
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-30* 
-SB-PCL::*EMF-CALL-TRACE-INDEX* 
-SB-PCL::*BUILT-IN-TYPEP-COST* 
-SB-PCL::*THE-CLASS-STANDARD-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-LRA* 
+SB-PCL::*THE-CLASS-METHOD* 
+SB-PCL::*THE-CLASS-METHOD-COMBINATION* 
+SB-PCL::*THE-CLASS-NULL* 
+SB-PCL::*THE-CLASS-NUMBER* 
+SB-PCL::*THE-CLASS-PCL-CLASS* 
 SB-PCL::*THE-CLASS-PLIST-MIXIN* 
 SB-PCL::*THE-CLASS-PLIST-MIXIN* 
-SB-PCL::*CONDITION-SETF-SLOT-VALUE-USING-CLASS-METHOD* 
-SB-PCL::*THE-CLASS-BIGNUM* 
-SB-PCL::*THE-WRAPPER-OF-CODE-COMPONENT* 
-SB-PCL::*THE-ESLOTD-STANDARD-CLASS-SLOTS* 
-SB-PCL::*SLOT-NAMES-FOR-THIS-DEFCLASS*
-SB-PCL::*THE-CLASS-FUNCTION* 
-SB-PCL::*THE-WRAPPER-OF-SYSTEM-AREA-POINTER* 
+SB-PCL::*THE-CLASS-RANDOM-CLASS* 
+SB-PCL::*THE-CLASS-RATIO* 
+SB-PCL::*THE-CLASS-RATIONAL* 
+SB-PCL::*THE-CLASS-REAL* 
+SB-PCL::*THE-CLASS-SEQUENCE* 
 SB-PCL::*THE-CLASS-SIMPLE-ARRAY* 
 SB-PCL::*THE-CLASS-SIMPLE-ARRAY* 
-SB-PCL::*THE-CLASS-STANDARD-EFFECTIVE-SLOT-DEFINITION* 
-SB-PCL::*THE-WRAPPER-OF-SEQUENCE* 
-SB-PCL::*THE-CLASS-FUNCALLABLE-STANDARD-CLASS* 
-SB-PCL::*THE-CLASS-SYSTEM-AREA-POINTER* 
-SB-PCL::*THE-WRAPPER-OF-LIST* 
-SB-PCL::*THE-CLASS-BUILT-IN-CLASS* 
-SB-PCL::*STRUCTURE-SETF-SLOT-VALUE-USING-CLASS-METHOD* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-COMPLEX-DOUBLE-FLOAT* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-COMPLEX-SINGLE-FLOAT* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-DOUBLE-FLOAT* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-16* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-30* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-32* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SIGNED-BYTE-8* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SINGLE-FLOAT* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-16* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-2* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-32* 
 SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-4* 
 SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-4* 
+SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-8* 
 SB-PCL::*THE-CLASS-SIMPLE-BIT-VECTOR* 
 SB-PCL::*THE-CLASS-SIMPLE-BIT-VECTOR* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-COMPLEX-SINGLE-FLOAT* 
-SB-PCL::*GLOBAL-EFFECTIVE-METHOD-GENSYMS* 
-SB-PCL::*DFUN-CONSTRUCTORS* 
-SB-PCL::*THE-CLASS-CODE-COMPONENT* 
+SB-PCL::*THE-CLASS-SIMPLE-STRING* 
+SB-PCL::*THE-CLASS-SIMPLE-VECTOR* 
+SB-PCL::*THE-CLASS-SINGLE-FLOAT* 
+SB-PCL::*THE-CLASS-SLOT-CLASS* 
+SB-PCL::*THE-CLASS-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-SLOT-OBJECT* 
+SB-PCL::*THE-CLASS-SPECIALIZER* 
+SB-PCL::*THE-CLASS-SPECIALIZER-WITH-OBJECT* 
+SB-PCL::*THE-CLASS-STANDARD-ACCESSOR-METHOD* 
+SB-PCL::*THE-CLASS-STANDARD-BOUNDP-METHOD* 
+SB-PCL::*THE-CLASS-STANDARD-CLASS* 
+SB-PCL::*THE-CLASS-STANDARD-DIRECT-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-STANDARD-EFFECTIVE-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-STANDARD-GENERIC-FUNCTION* 
+SB-PCL::*THE-CLASS-STANDARD-METHOD* 
+SB-PCL::*THE-CLASS-STANDARD-METHOD-COMBINATION* 
+SB-PCL::*THE-CLASS-STANDARD-OBJECT* 
+SB-PCL::*THE-CLASS-STANDARD-READER-METHOD* 
+SB-PCL::*THE-CLASS-STANDARD-SLOT-DEFINITION* 
 SB-PCL::*THE-CLASS-STANDARD-WRITER-METHOD* 
 SB-PCL::*THE-CLASS-STANDARD-WRITER-METHOD* 
-SB-PCL::*NON-VAR-DECLARATIONS* 
-SB-PCL::*IN-PRECOMPUTE-EFFECTIVE-METHODS-P* 
-SB-PCL::*CHECKING-OR-CACHING-LIST* 
-SB-PCL::*THE-CLASS-BIT-VECTOR* 
+SB-PCL::*THE-CLASS-STD-CLASS* 
+SB-PCL::*THE-CLASS-STD-OBJECT* 
+SB-PCL::*THE-CLASS-STREAM* 
+SB-PCL::*THE-CLASS-STRING* 
+SB-PCL::*THE-CLASS-STRUCTURE-CLASS* 
+SB-PCL::*THE-CLASS-STRUCTURE-DIRECT-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-STRUCTURE-EFFECTIVE-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-STRUCTURE-OBJECT* 
+SB-PCL::*THE-CLASS-STRUCTURE-SLOT-DEFINITION* 
+SB-PCL::*THE-CLASS-SYMBOL* 
+SB-PCL::*THE-CLASS-SYSTEM-AREA-POINTER* 
+SB-PCL::*THE-CLASS-T* 
+SB-PCL::*THE-CLASS-VECTOR* 
+SB-PCL::*THE-CLASS-WEAK-POINTER* 
+SB-PCL::*THE-ESLOTD-FUNCALLABLE-STANDARD-CLASS-SLOTS* 
+SB-PCL::*THE-ESLOTD-STANDARD-CLASS-SLOTS* 
+SB-PCL::*THE-SYSTEM-II-METHOD* 
+SB-PCL::*THE-SYSTEM-SI-METHOD* 
+SB-PCL::*THE-WRAPPER-OF-ARRAY* 
+SB-PCL::*THE-WRAPPER-OF-BASE-CHAR* 
+SB-PCL::*THE-WRAPPER-OF-BIGNUM* 
+SB-PCL::*THE-WRAPPER-OF-BIT-VECTOR* 
 SB-PCL::*THE-WRAPPER-OF-CHARACTER* 
 SB-PCL::*THE-WRAPPER-OF-CHARACTER* 
+SB-PCL::*THE-WRAPPER-OF-CODE-COMPONENT* 
 SB-PCL::*THE-WRAPPER-OF-COMPLEX* 
 SB-PCL::*THE-WRAPPER-OF-COMPLEX* 
-SB-PCL::*BUILT-IN-CLASSES* 
-SB-PCL::*ALLOW-EXPERIMENTAL-SPECIALIZERS-P* 
-SB-PCL::*ALLOW-EMF-CALL-TRACING-P* 
-SB-PCL::*SGF-METHOD-CLASS-INDEX* 
-SB-PCL::*SGF-METHODS-INDEX* 
+SB-PCL::*THE-WRAPPER-OF-COMPLEX-DOUBLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-COMPLEX-SINGLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-CONS* 
+SB-PCL::*THE-WRAPPER-OF-DOUBLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-FDEFN* 
+SB-PCL::*THE-WRAPPER-OF-FIXNUM* 
+SB-PCL::*THE-WRAPPER-OF-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-INTEGER* 
+SB-PCL::*THE-WRAPPER-OF-LIST* 
+SB-PCL::*THE-WRAPPER-OF-LRA* 
+SB-PCL::*THE-WRAPPER-OF-NULL* 
 SB-PCL::*THE-WRAPPER-OF-NUMBER* 
 SB-PCL::*THE-WRAPPER-OF-NUMBER* 
+SB-PCL::*THE-WRAPPER-OF-RANDOM-CLASS* 
 SB-PCL::*THE-WRAPPER-OF-RATIO* 
 SB-PCL::*THE-WRAPPER-OF-RATIO* 
-SB-PCL::*RAISE-METATYPES-TO-CLASS-P* 
-SB-PCL::*EARLY-CLASS-SLOTS* 
-SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY* 
-SB-PCL::*MF1CP* 
 SB-PCL::*THE-WRAPPER-OF-RATIONAL* 
 SB-PCL::*THE-WRAPPER-OF-RATIONAL* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-16* 
-SB-PCL::*THE-WRAPPER-OF-ARRAY* 
-SB-PCL::*THE-ESLOTD-FUNCALLABLE-STANDARD-CLASS-SLOTS* 
-SB-PCL::*THE-CLASS-SLOT-CLASS* 
-SB-PCL::*THE-CLASS-SLOT-DEFINITION* 
-SB-PCL::*OPTIMIZE-CACHE-FUNCTIONS-P* 
-SB-PCL::*MF2* 
-SB-PCL::*THE-CLASS-SEQUENCE* 
-SB-PCL::*EQ-CASE-TABLE-LIMIT* 
-SB-PCL::*THE-CLASS-STRUCTURE-OBJECT* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-DOUBLE-FLOAT* 
-SB-PCL::*SLOT-VECTOR-SYMBOLS* 
-SB-PCL::*ENABLE-EMF-CALL-TRACING-P* 
-SB-PCL::*THE-CLASS-SINGLE-FLOAT* 
-SB-PCL::*THE-SYSTEM-SI-METHOD* 
-SB-PCL::*THE-WRAPPER-OF-BASE-CHAR* 
-SB-PCL::*THE-CLASS-CONDITION-SLOT-DEFINITION* 
-SB-PCL::*DFUN-LIST* 
-SB-PCL::*THE-CLASS-STANDARD-METHOD* 
-SB-PCL::*DFUN-ARG-SYMBOLS* 
-SB-PCL::*NOT-IN-CACHE* 
-SB-PCL::*THE-CLASS-STANDARD-BOUNDP-METHOD* 
-SB-PCL::*THE-CLASS-LIST* 
-SB-PCL::*NEW-CLASS* 
+SB-PCL::*THE-WRAPPER-OF-REAL* 
+SB-PCL::*THE-WRAPPER-OF-SEQUENCE* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-COMPLEX-DOUBLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-COMPLEX-SINGLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-DOUBLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-16* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-30* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-32* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SIGNED-BYTE-8* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-SINGLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-16* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-2* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-32* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-4* 
 SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-8* 
 SB-PCL::*THE-WRAPPER-OF-SIMPLE-ARRAY-UNSIGNED-BYTE-8* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-UNSIGNED-BYTE-2* 
-SB-PCL::*THE-CLASS-CLASS-EQ-SPECIALIZER* 
-SB-PCL::*THE-CLASS-FUNCALLABLE-INSTANCE* 
-SB-PCL::*IN-GF-ARG-INFO-P* 
-SB-PCL::*THE-CLASS-STANDARD-GENERIC-FUNCTION* 
-SB-PCL::*SGF-ARG-INFO-INDEX* 
-SB-PCL::*ALLOW-FORWARD-REFERENCED-CLASSES-IN-CPL-P* 
-SB-PCL::*THE-CLASS-FORWARD-REFERENCED-CLASS* 
-SB-PCL::*THE-CLASS-SIMPLE-ARRAY-SINGLE-FLOAT* 
-SB-PCL::*MF1P* 
-SB-PCL::*MINIMUM-CACHE-SIZE-TO-LIST*
-SB-PCL::*THE-CLASS-CLASS-PROTOTYPE-SPECIALIZER* 
-SB-PCL::*THE-CLASS-T* 
-SB-PCL::*CACHE-MISS-VALUES-STACK* 
-SB-PCL::*SGF-NAME-INDEX* 
-SB-PCL::*THE-CLASS-DEFINITION-SOURCE-MIXIN* 
-SB-PCL::*SGF-SLOTS-INIT* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-BIT-VECTOR* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-STRING* 
+SB-PCL::*THE-WRAPPER-OF-SIMPLE-VECTOR* 
+SB-PCL::*THE-WRAPPER-OF-SINGLE-FLOAT* 
+SB-PCL::*THE-WRAPPER-OF-STRING* 
+SB-PCL::*THE-WRAPPER-OF-STRUCTURE-OBJECT* 
+SB-PCL::*THE-WRAPPER-OF-SYMBOL* 
+SB-PCL::*THE-WRAPPER-OF-SYSTEM-AREA-POINTER* 
+SB-PCL::*THE-WRAPPER-OF-T* 
+SB-PCL::*THE-WRAPPER-OF-VECTOR* 
+SB-PCL::*THE-WRAPPER-OF-WEAK-POINTER* 
+SB-PCL::*WRITERS-FOR-THIS-DEFCLASS*
+SB-PCL::WRAPPER-CLASS* 
 
 
 = debugger
 
 
 = debugger
@@ -406,7 +409,6 @@ SB-DEBUG::*DEBUG-LOOP-FUN*
 SB-DEBUG::*NESTED-DEBUG-CONDITION*
 SB-DEBUG::*STEP-BREAKPOINTS* 
 SB-DEBUG::*DEBUG-RESTARTS*
 SB-DEBUG::*NESTED-DEBUG-CONDITION*
 SB-DEBUG::*STEP-BREAKPOINTS* 
 SB-DEBUG::*DEBUG-RESTARTS*
-SB-DEBUG::*CACHED-FORM-NUMBER-TRANSLATIONS*
 SB-DEBUG::*BREAKPOINTS* 
 SB-DEBUG::*TRACED-FUNS* 
 SB-DEBUG::*DEBUG-COMMANDS* 
 SB-DEBUG::*BREAKPOINTS* 
 SB-DEBUG::*TRACED-FUNS* 
 SB-DEBUG::*DEBUG-COMMANDS* 
@@ -423,7 +425,6 @@ SB-DI::*PARSING-BUFFER*
 SB-DI::*IR1-BLOCK-DEBUG-BLOCK* 
 SB-DI::*OTHER-PARSING-BUFFER* 
 SB-DI::*COMPILED-DEBUG-FUNS* 
 SB-DI::*IR1-BLOCK-DEBUG-BLOCK* 
 SB-DI::*OTHER-PARSING-BUFFER* 
 SB-DI::*COMPILED-DEBUG-FUNS* 
-SB-DI::*FORM-NUMBER-TEMP* 
 SB-DI::*COMPONENT-BREAKPOINT-OFFSETS* 
 SB-DI::*FUN-END-COOKIES* 
 SB-DI::*FORM-NUMBER-CIRCULARITY-TABLE* 
 SB-DI::*COMPONENT-BREAKPOINT-OFFSETS* 
 SB-DI::*FUN-END-COOKIES* 
 SB-DI::*FORM-NUMBER-CIRCULARITY-TABLE* 
@@ -530,13 +531,10 @@ SB-THREAD::*BACKGROUND-THREADS-WAIT-FOR-DEBUGGER* ; intentionally global
 *PRINT-LINES* 
 *PRINT-ESCAPE* 
 *PRINT-LEVEL* 
 *PRINT-LINES* 
 *PRINT-ESCAPE* 
 *PRINT-LEVEL* 
-*ERROR-PRINT-LENGTH*
-*ERROR-PRINT-LINES*
 *READ-EVAL* 
 *PRINT-ESCAPE* 
 *TRACE-OUTPUT* 
 SB-IMPL::*INSPECT-LENGTH* 
 *READ-EVAL* 
 *PRINT-ESCAPE* 
 *TRACE-OUTPUT* 
 SB-IMPL::*INSPECT-LENGTH* 
-*ERROR-PRINT-LEVEL*
 SB-IMPL::*DRIBBLE-STREAM*         ; what to do with dribble in threaded lisp?
 SB-IMPL::*HELP-FOR-INSPECT*       ; read-only
 *PRINT-ARRAY*                     
 SB-IMPL::*DRIBBLE-STREAM*         ; what to do with dribble in threaded lisp?
 SB-IMPL::*HELP-FOR-INSPECT*       ; read-only
 *PRINT-ARRAY*                     
@@ -599,6 +597,10 @@ Note that the compiler and fasloader are strongly believed not to be
 thread-safe, so there is currently a big lock (*big-compiler-lock*)
 around all calls to the compiler or fasloader
 
 thread-safe, so there is currently a big lock (*big-compiler-lock*)
 around all calls to the compiler or fasloader
 
+Note that INFO functions use a shared cache for the globaldb, and
+don't lock for cache invalidation. This will need fixing when BCL is
+removed.
+
 *COMPILE-FILE-PATHNAME*  
 *COMPILE-FILE-TRUENAME* 
 *COMPILE-PRINT* 
 *COMPILE-FILE-PATHNAME*  
 *COMPILE-FILE-TRUENAME* 
 *COMPILE-PRINT* 
@@ -688,7 +690,6 @@ SB-C::*BLOCK-COMPILE-ARG*
 SB-C::*COMPILER-ERROR-PRINT-LENGTH* 
 SB-C::*CONTINUATION-NUMBER* 
 SB-C::*PREV-SEGMENT*
 SB-C::*COMPILER-ERROR-PRINT-LENGTH* 
 SB-C::*CONTINUATION-NUMBER* 
 SB-C::*PREV-SEGMENT*
-SB-C::*ALL-COMPONENTS*
 SB-C::*CONTROL-DELETED-BLOCK-EVENT-INFO* 
 SB-C::*ALLOW-DEBUG-CATCH-TAG* 
 SB-C::*ID-LABELS* 
 SB-C::*CONTROL-DELETED-BLOCK-EVENT-INFO* 
 SB-C::*ALLOW-DEBUG-CATCH-TAG* 
 SB-C::*ID-LABELS* 
@@ -793,7 +794,6 @@ SB-FASL::*CURRENT-FOP-TABLE-SIZE*
 SB-FASL::*FOP-STACK-POINTER-ON-ENTRY*
 SB-FASL::*FREE-FOP-TABLES* 
 SB-FASL::*LOAD-SYMBOL-BUFFER* 
 SB-FASL::*FOP-STACK-POINTER-ON-ENTRY*
 SB-FASL::*FREE-FOP-TABLES* 
 SB-FASL::*LOAD-SYMBOL-BUFFER* 
-SB-FASL::*CURRENT-CATCH-BLOCK* 
 SB-FASL::*FASL-HEADER-STRING-START-STRING* 
 SB-FASL::DUMP-FOP* 
 SB-FASL::FOP-LIST* 
 SB-FASL::*FASL-HEADER-STRING-START-STRING* 
 SB-FASL::DUMP-FOP* 
 SB-FASL::FOP-LIST* 
@@ -817,13 +817,13 @@ SB-FASL::FOP-LIST*-3
 
 SB-VM:*STATIC-SPACE-FREE-POINTER* 
 SB-VM:*INITIAL-DYNAMIC-SPACE-FREE-POINTER* 
 
 SB-VM:*STATIC-SPACE-FREE-POINTER* 
 SB-VM:*INITIAL-DYNAMIC-SPACE-FREE-POINTER* 
-SB-VM:*CURRENT-CATCH-BLOCK* 
+SB-VM:*CURRENT-CATCH-BLOCK* ; bound at thread entry (in C)
 SB-VM:*STATIC-SYMBOLS* 
 SB-VM:*CONTROL-STACK-START* ; safe, bound at thread entry
 SB-VM:*READ-ONLY-SPACE-FREE-POINTER* 
 SB-VM:*BINDING-STACK-START* ; safe, bound at thread entry
 SB-VM:*CONTROL-STACK-END* ; safe, bound at thread entry
 SB-VM:*STATIC-SYMBOLS* 
 SB-VM:*CONTROL-STACK-START* ; safe, bound at thread entry
 SB-VM:*READ-ONLY-SPACE-FREE-POINTER* 
 SB-VM:*BINDING-STACK-START* ; safe, bound at thread entry
 SB-VM:*CONTROL-STACK-END* ; safe, bound at thread entry
-SB-VM::*CURRENT-UNWIND-PROTECT-BLOCK* 
+SB-VM::*CURRENT-UNWIND-PROTECT-BLOCK*  ; bound at thread entry (in C)
 SB-VM::*FREE-TLS-INDEX* 
 SB-VM::*BINDING-STACK-POINTER* 
 SB-VM::*ALLOCATION-POINTER*    ; may be mostly unused ?
 SB-VM::*FREE-TLS-INDEX* 
 SB-VM::*BINDING-STACK-POINTER* 
 SB-VM::*ALLOCATION-POINTER*    ; may be mostly unused ?
@@ -835,18 +835,13 @@ SB-KERNEL:*NEED-TO-COLLECT-GARBAGE*
 SB-KERNEL:*ALREADY-MAYBE-GCING*
 SB-KERNEL:*PSEUDO-ATOMIC-INTERRUPTED* ; bound
 SB-KERNEL::*GC-TRIGGER*  ; I think this is dead, check
 SB-KERNEL:*ALREADY-MAYBE-GCING*
 SB-KERNEL:*PSEUDO-ATOMIC-INTERRUPTED* ; bound
 SB-KERNEL::*GC-TRIGGER*  ; I think this is dead, check
-SB-IMPL::*CURRENT-UNWIND-PROTECT-BLOCK*
-SB-IMPL::*CURRENT-CATCH-BLOCK*
+SB-IMPL::*CURRENT-UNWIND-PROTECT-BLOCK* ; thread-local
 SB-IMPL::*READ-ONLY-SPACE-FREE-POINTER*
 SB-IMPL::*READ-ONLY-SPACE-FREE-POINTER*
-SB-VM::*ALIEN-STACK* 
+SB-VM::*ALIEN-STACK*  ; bound in create_thread_struct()
 
 SB-IMPL::*OBJECTS-PENDING-FINALIZATION*  ; needs locking for writers
 
 
 SB-IMPL::*OBJECTS-PENDING-FINALIZATION*  ; needs locking for writers
 
-*GC-NOTIFY-STREAM*   ; going away
-*BEFORE-GC-HOOKS*    ; must be global
-*AFTER-GC-HOOKS*     ; ditto
-*GC-NOTIFY-AFTER*    ; going away
-*GC-NOTIFY-BEFORE*   ; going away
+*AFTER-GC-HOOKS*     ; must be global
 *GC-RUN-TIME*        
 SB-INT:*N-BYTES-FREED-OR-PURIFIED* 
 
 *GC-RUN-TIME*        
 SB-INT:*N-BYTES-FREED-OR-PURIFIED* 
 
@@ -907,15 +902,6 @@ SB-KERNEL::*BUILT-IN-CLASSES*
 
 = dead stuff
 
 
 = dead stuff
 
-SB-SYS:*TASK-NOTIFY*    ; unused
-SB-SYS:*TASK-SELF*      ; unused
-SB-SYS:*TASK-DATA*      ; unused
-SB-SYS:*TYPESCRIPTPORT* ' unused
-SB-THREAD::*FOREGROUND-THREAD-STACK*    ; unused, I think
-
-
-
-
 ------------------------------------------------------------------------
 
 = unclassified
 ------------------------------------------------------------------------
 
 = unclassified
@@ -961,12 +947,12 @@ SB-KERNEL:*CURRENT-LEVEL-IN-PRINT*
 SB-KERNEL:*UNIVERSAL-FUN-TYPE* 
 SB-KERNEL:*COLD-INIT-COMPLETE-P* 
 SB-KERNEL:*UNIVERSAL-TYPE*                              ; readonly
 SB-KERNEL:*UNIVERSAL-FUN-TYPE* 
 SB-KERNEL:*COLD-INIT-COMPLETE-P* 
 SB-KERNEL:*UNIVERSAL-TYPE*                              ; readonly
-SB-KERNEL:*HANDLER-CLUSTERS* 
+SB-KERNEL:*HANDLER-CLUSTERS*                           ; bound per-thread
 SB-KERNEL:*EMPTY-TYPE*                                  ; readonly
 SB-KERNEL:*MAXIMUM-ERROR-DEPTH* 
 SB-KERNEL:*EMPTY-TYPE*                                  ; readonly
 SB-KERNEL:*MAXIMUM-ERROR-DEPTH* 
-SB-KERNEL:*CONDITION-RESTARTS* 
+SB-KERNEL:*CONDITION-RESTARTS*                                 ; bound per-thread
 SB-KERNEL:*TYPE-SYSTEM-INITIALIZED* 
 SB-KERNEL:*TYPE-SYSTEM-INITIALIZED* 
-SB-KERNEL:*RESTART-CLUSTERS* 
+SB-KERNEL:*RESTART-CLUSTERS*                            ; bound per-thread
 SB-KERNEL::*MAKE-VALUES-TYPE-CACHED-CACHE-VECTOR* 
 SB-KERNEL::*BUILT-IN-CLASS-CODES*                       ; readonly
 SB-KERNEL::*DEF!STRUCT-TYPE-MAKE-LOAD-FORM-FUN* 
 SB-KERNEL::*MAKE-VALUES-TYPE-CACHED-CACHE-VECTOR* 
 SB-KERNEL::*BUILT-IN-CLASS-CODES*                       ; readonly
 SB-KERNEL::*DEF!STRUCT-TYPE-MAKE-LOAD-FORM-FUN* 
@@ -1008,10 +994,10 @@ SB-KERNEL::*DEF!STRUCT-SUPERTYPE*
 SB-KERNEL::*%TYPE-UNION-CACHE-VECTOR* 
 SB-KERNEL::*CTYPE-OF-CACHE-VECTOR* 
 
 SB-KERNEL::*%TYPE-UNION-CACHE-VECTOR* 
 SB-KERNEL::*CTYPE-OF-CACHE-VECTOR* 
 
-SB-IMPL::*READ-BUFFER* 
+SB-IMPL::*READ-BUFFER*  ; FIXME: non-threadsafe
 SB-IMPL::*SECONDARY-ATTRIBUTE-TABLE* 
 SB-IMPL::*STANDARD-READTABLE* 
 SB-IMPL::*SECONDARY-ATTRIBUTE-TABLE* 
 SB-IMPL::*STANDARD-READTABLE* 
-SB-IMPL::*OUCH-PTR* 
+SB-IMPL::*OUCH-PTR*  ; FIXME: non-threadsafe
 SB-IMPL::*ERROR-ERROR-DEPTH* 
 SB-IMPL::*CURRENT-ERROR-DEPTH* 
 SB-IMPL::*INTERNAL-REAL-TIME-BASE-SECONDS* 
 SB-IMPL::*ERROR-ERROR-DEPTH* 
 SB-IMPL::*CURRENT-ERROR-DEPTH* 
 SB-IMPL::*INTERNAL-REAL-TIME-BASE-SECONDS* 
@@ -1031,7 +1017,6 @@ SB-IMPL::*INTEGER-READER-SAFE-DIGITS*
 SB-IMPL::*TIMEZONE-TABLE* 
 SB-IMPL::*BQ-COMMA-FLAG*                                ; readonly
 SB-IMPL::*PRINT-OBJECT-IS-DISABLED-P*
 SB-IMPL::*TIMEZONE-TABLE* 
 SB-IMPL::*BQ-COMMA-FLAG*                                ; readonly
 SB-IMPL::*PRINT-OBJECT-IS-DISABLED-P*
-SB-IMPL::*MERGE-SORT-TEMP-VECTOR* 
 SB-IMPL::*PROFILE-HASH-CACHE* 
 SB-IMPL::*FIXNUM-POWER--1* 
 SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE*
 SB-IMPL::*PROFILE-HASH-CACHE* 
 SB-IMPL::*FIXNUM-POWER--1* 
 SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE*
@@ -1044,7 +1029,6 @@ SB-IMPL::*CLOSE-IN-PARENT*
 SB-IMPL::*IN-COMPILATION-UNIT*
 SB-IMPL::*CIRCULARITY-HASH-TABLE* 
 SB-IMPL::*LOAD-PRINT-STUFF*
 SB-IMPL::*IN-COMPILATION-UNIT*
 SB-IMPL::*CIRCULARITY-HASH-TABLE* 
 SB-IMPL::*LOAD-PRINT-STUFF*
-SB-IMPL::*ZAP-ARRAY-DATA-TEMP*       ; FIXME: ADJUST-ARRAY non-threadsafe
 SB-IMPL::*ACTIVE-PROCESSES* 
 SB-IMPL::*SHARP-SHARP-ALIST*     
 SB-IMPL::*BASE-POWER* 
 SB-IMPL::*ACTIVE-PROCESSES* 
 SB-IMPL::*SHARP-SHARP-ALIST*     
 SB-IMPL::*BASE-POWER* 
@@ -1073,7 +1057,7 @@ SB-IMPL::*PREVIOUS-DRIBBLE-STREAMS*
 SB-IMPL::*MAX-EVENT-TO-USEC* 
 SB-IMPL::*INPUT-ROUTINES* 
 SB-IMPL::*MAX-EVENT-TO-SEC* 
 SB-IMPL::*MAX-EVENT-TO-USEC* 
 SB-IMPL::*INPUT-ROUTINES* 
 SB-IMPL::*MAX-EVENT-TO-SEC* 
-SB-IMPL::*READ-BUFFER-LENGTH* 
+SB-IMPL::*READ-BUFFER-LENGTH* ; FIXME: not threadsafe
 SB-IMPL::*LONG-MONTH-TABLE* 
 SB-IMPL::*OLD-PACKAGE* 
 SB-IMPL::*INTEGER-READER-BASE-POWER* 
 SB-IMPL::*LONG-MONTH-TABLE* 
 SB-IMPL::*OLD-PACKAGE* 
 SB-IMPL::*INTEGER-READER-BASE-POWER* 
@@ -1081,7 +1065,7 @@ SB-IMPL::*ERROR-THROW-UP-COUNT*
 SB-IMPL::*BQ-AT-FLAG*                           ; readonly
 SB-IMPL::*MACHINE-VERSION*   ; unset/unbound ?  are we using this?
 SB-IMPL::*IGNORE-WILDCARDS* 
 SB-IMPL::*BQ-AT-FLAG*                           ; readonly
 SB-IMPL::*MACHINE-VERSION*   ; unset/unbound ?  are we using this?
 SB-IMPL::*IGNORE-WILDCARDS* 
-SB-IMPL::*INCH-PTR* 
+SB-IMPL::*INCH-PTR*  ; FIXME: non-threadsafe
 SB-IMPL::*SHARP-EQUAL-ALIST* 
 SB-IMPL::*PREVIOUS-CASE* ; FIXME: printer not threadsafe
 
 SB-IMPL::*SHARP-EQUAL-ALIST* 
 SB-IMPL::*PREVIOUS-CASE* ; FIXME: printer not threadsafe
 
@@ -1098,9 +1082,6 @@ SB-IMPL::*PREVIOUS-CASE* ; FIXME: printer not threadsafe
 *MACROEXPAND-HOOK* 
 *RANDOM-STATE* 
 
 *MACROEXPAND-HOOK* 
 *RANDOM-STATE* 
 
-SB-BIGNUM::*TRUNCATE-Y*
-SB-BIGNUM::*TRUNCATE-X*
-
 SB-INT:*CL-PACKAGE*                     ; readonly
 SB-INT:*KEYWORD-PACKAGE*                ; readonly
 SB-INT:*SETF-FDEFINITION-HOOK* 
 SB-INT:*CL-PACKAGE*                     ; readonly
 SB-INT:*KEYWORD-PACKAGE*                ; readonly
 SB-INT:*SETF-FDEFINITION-HOOK*