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
= 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*
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::*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*
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*
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-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-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*
= 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
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*
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*