Restore cross-compilation with CLISP.
[sbcl.git] / doc / internals-notes / threading-specials
index b76218d..4b4cfd3 100644 (file)
@@ -15,13 +15,12 @@ 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
-       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
-       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
@@ -98,283 +97,287 @@ SB-LOOP::*LOOP-BIND-STACK*
 
 = 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.
-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::*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::*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::*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::*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::*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::*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::*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::*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::*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::*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-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-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::*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::*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-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-8* 
 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::*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-CODE-COMPONENT* 
 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-RANDOM-CLASS* 
 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-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-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
@@ -406,7 +409,6 @@ SB-DEBUG::*DEBUG-LOOP-FUN*
 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* 
@@ -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::*FORM-NUMBER-TEMP* 
 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* 
-*ERROR-PRINT-LENGTH*
-*ERROR-PRINT-LINES*
 *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*                     
@@ -692,7 +690,6 @@ SB-C::*BLOCK-COMPILE-ARG*
 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* 
@@ -797,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::*CURRENT-CATCH-BLOCK* 
 SB-FASL::*FASL-HEADER-STRING-START-STRING* 
 SB-FASL::DUMP-FOP* 
 SB-FASL::FOP-LIST* 
@@ -839,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-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-VM::*ALIEN-STACK*  ; bound in create_thread_struct()
 
 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* 
 
@@ -911,15 +902,6 @@ SB-KERNEL::*BUILT-IN-CLASSES*
 
 = 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
@@ -1035,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::*MERGE-SORT-TEMP-VECTOR*  ; FIXME: SORT non-threadsafe, non-reentrant
 SB-IMPL::*PROFILE-HASH-CACHE* 
 SB-IMPL::*FIXNUM-POWER--1* 
 SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE*
@@ -1048,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::*ZAP-ARRAY-DATA-TEMP*       ; FIXME: ADJUST-ARRAY non-threadsafe
 SB-IMPL::*ACTIVE-PROCESSES* 
 SB-IMPL::*SHARP-SHARP-ALIST*     
 SB-IMPL::*BASE-POWER*