Restore cross-compilation with CLISP.
[sbcl.git] / doc / internals-notes / threading-specials
index d67db3c..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,16 +97,11 @@ 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.
 
-Largish parts of PCL should also be protected by the compiler lock,
-but sometimes it can be hard to tell...
-
-The most suspicious parts should probably be tested by asserting
-at various sites that the *PCL-LOCK* is held.
+accesses locked with a nice granularity
+   SB-PCL::*CLASSOID-CELLS*
 
 read-only & safe:
    SB-PCL::*BUILT-IN-TYPEP-COST* 
@@ -132,6 +126,9 @@ bound & safe:
    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* 
@@ -148,7 +145,6 @@ potentially unsafe:
    SB-PCL::*PVS* 
    SB-PCL::*SLOT-NAME-LISTS-INNER* 
    SB-PCL::*SLOT-NAME-LISTS-OUTER* 
-   SB-PCL::*PREVIOUS-NWRAPPERS* 
 
 debugging / profiling -- low relevance:
    SB-PCL::*DFUN-COUNT* 
@@ -186,7 +182,6 @@ SB-PCL::*EMIT-FUNCTION-P*
 SB-PCL::*ENABLE-DFUN-CONSTRUCTOR-CACHING* 
 SB-PCL::*ENABLE-EMF-CALL-TRACING-P* 
 SB-PCL::*EQL-SPECIALIZER-TABLE* 
-SB-PCL::*FIND-CLASS* 
 SB-PCL::*GLOBAL-EFFECTIVE-METHOD-GENSYMS* 
 SB-PCL::*IN-GF-ARG-INFO-P* 
 SB-PCL::*IN-PRECOMPUTE-EFFECTIVE-METHODS-P* 
@@ -414,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* 
@@ -431,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* 
@@ -697,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* 
@@ -910,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
@@ -1034,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*   ; safe, allocated per-thread
 SB-IMPL::*PROFILE-HASH-CACHE* 
 SB-IMPL::*FIXNUM-POWER--1* 
 SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE*
@@ -1047,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*      ; safe, allocated per-thread
 SB-IMPL::*ACTIVE-PROCESSES* 
 SB-IMPL::*SHARP-SHARP-ALIST*     
 SB-IMPL::*BASE-POWER*