mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
Update some internal notes
This commit is contained in:
parent
096e02568e
commit
fe1e6380be
|
|
@ -597,9 +597,14 @@ 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
|
||||
|
||||
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.
|
||||
INFO functions are currently believed to be multi-writer/reader threadsafe,
|
||||
though it's hard to know for sure since they were definitely read-safe,
|
||||
and writes are done only while holding **WORLD-LOCK** as things stand.
|
||||
The algorithms employed are used in at least one industrial-strength Lisp
|
||||
application, though a bug has been reported (to me, dougk) regarding
|
||||
the fasloader that might be related to INFO, or to the fasloader.
|
||||
Catch 22: can't expose threading bugs until lock is removed
|
||||
can't remove the lock until INFO is proven to be threadsafe.
|
||||
|
||||
*COMPILE-FILE-PATHNAME*
|
||||
*COMPILE-FILE-TRUENAME*
|
||||
|
|
@ -618,9 +623,7 @@ SB-C:*BACKEND-SC-NUMBERS*
|
|||
SB-C:*ELSEWHERE*
|
||||
SB-C:*BACKEND-T-PRIMITIVE-TYPE*
|
||||
SB-C:*BACKEND-SB-LIST*
|
||||
SB-C:*SETF-ASSUMED-FBOUNDP*
|
||||
SB-C:*FREE-FUNS*
|
||||
SB-C:*BACKEND-DISASSEM-PARAMS*
|
||||
SB-C:*BACKEND-SUBFEATURES*
|
||||
SB-C:*COUNT-VOP-USAGES*
|
||||
SB-C:*SUPPRESS-VALUES-DECLARATION*
|
||||
|
|
@ -657,18 +660,15 @@ SB-C::*QUEUED-PROCLAIMS*
|
|||
SB-C::*COMPILER-STYLE-WARNING-COUNT*
|
||||
SB-C::*LABEL-IDS*
|
||||
SB-C::TN-NEXT*
|
||||
SB-C::*BACKEND-SUPPORT-ROUTINES*
|
||||
SB-C::*COMPILED-CODE-LOCATION-KINDS*
|
||||
SB-C::*VOP-TN-REFS*
|
||||
SB-C::*INFO-CACHE-VECTOR*
|
||||
SB-C::*FAILURE-P*
|
||||
SB-C::*LAST-ORIGINAL-SOURCE*
|
||||
SB-C::NEXT*
|
||||
SB-C::LIST*-IR2-CONVERT-OPTIMIZER
|
||||
SB-C::*COMPILER-ERROR-BAILOUT*
|
||||
SB-C::*DELAYED-IR1-TRANSFORMS*
|
||||
SB-C::*INFO-TYPES*
|
||||
SB-C::*CACHED-INFO-ENVIRONMENT*
|
||||
SB-C::*INFO-TYPES* ; readonly
|
||||
SB-C::*CHECK-CONSISTENCY*
|
||||
SB-C::*SEEN-FUNS*
|
||||
SB-C::*USING-VOP-TN-REFS*
|
||||
|
|
@ -685,7 +685,6 @@ SB-C::*BACKEND-PRIMITIVE-TYPE-ALIASES*
|
|||
SB-C::*NO-COSTS*
|
||||
SB-C::*PACK-ASSIGN-COSTS*
|
||||
SB-C::*CURRENT-FORM-NUMBER*
|
||||
SB-C::*BACKEND-META-SC-NAMES*
|
||||
SB-C::*BLOCK-COMPILE-ARG*
|
||||
SB-C::*COMPILER-ERROR-PRINT-LENGTH*
|
||||
SB-C::*CONTINUATION-NUMBER*
|
||||
|
|
@ -698,16 +697,14 @@ SB-C::*COMPILER-WARNING-COUNT*
|
|||
SB-C::*SUPPRESS-NOTE-VOPS*
|
||||
SB-C::*COMPILER-ERROR-PRINT-LEVEL*
|
||||
SB-C::*COMPLEMENT-TYPE-CHECKS*
|
||||
SB-C::*META-PRIMITIVE-TYPE-NAMES*
|
||||
SB-C::*FUN-NAMES-IN-THIS-FILE*
|
||||
SB-C::*SPLIT-IR2-BLOCK-EVENT-INFO*
|
||||
SB-C::*TRACE-TABLE*
|
||||
SB-C::*LAST-SOURCE-FORM*
|
||||
SB-C::*WEAKEN-TYPE-CACHE-VECTOR*
|
||||
SB-C::*WEAKEN-TYPE-CACHE-VECTOR* ; threadsafe
|
||||
SB-C::*-DERIVE-TYPE-AUX
|
||||
SB-C::*BLOCK-COMPILE*
|
||||
SB-C::*BIG-COMPILER-LOCK* ; protecting the rest
|
||||
SB-C::*VM-SUPPORT-ROUTINES*
|
||||
SB-C::*PRIMITIVE-TYPE-SLOT-ALIST*
|
||||
SB-C::*PREVIOUS-LOCATION*
|
||||
SB-C::*BYTE-BUFFER*
|
||||
|
|
@ -736,17 +733,14 @@ SB-C::*SC-VOP-SLOTS*
|
|||
SB-C::*IR1-OPTIMIZE-MAXED-OUT-EVENT-INFO*
|
||||
SB-C::*CONTINUATION-NUMBERS*
|
||||
SB-C::*WARNINGS-P*
|
||||
SB-C::*BACKEND-META-SC-NUMBERS*
|
||||
SB-C::*FLAME-ON-NECESSARILY-UNDEFINED-FUNCTION*
|
||||
SB-C::*UNPACK-FALLBACK-EVENT-INFO*
|
||||
SB-C::*SOURCE-INFO*
|
||||
SB-C::*LIVE-BLOCK*
|
||||
SB-C::*BACKEND-META-PRIMITIVE-TYPE-NAMES*
|
||||
SB-C::*NEXT-LOCATION*
|
||||
SB-C::*ELSEWHERE-LABEL*
|
||||
SB-C::*SOURCE-PATHS*
|
||||
SB-C::*CONSTANTS*
|
||||
SB-C::*BACKEND-META-SB-NAMES*
|
||||
SB-C::*DEFAULT-NTHCDR-OPEN-CODE-LIMIT*
|
||||
SB-C::*ALWAYS-OPTIMIZED-AWAY*
|
||||
SB-C::*CURRENT-PATH*
|
||||
|
|
@ -754,7 +748,6 @@ SB-C::*LABEL-ID*
|
|||
SB-C::*ENTRY-POINTS*
|
||||
SB-C::*COMPILER-TRACE-OUTPUT*
|
||||
SB-C::*CONSTRAINT-NUMBER*
|
||||
SB-C::*INFO-CLASSES*
|
||||
SB-C::*RESULT-FIXUPS*
|
||||
SB-C::*REPACK-BLOCKS*
|
||||
SB-C::IR1-CONVERT-LET*
|
||||
|
|
@ -859,8 +852,6 @@ eligible for defconstant). Mostly they're attributes of the backend machine
|
|||
|
||||
SB-C:*BACKEND-REGISTER-SAVE-PENALTY*
|
||||
SB-C:*BACKEND-BYTE-ORDER*
|
||||
SB-C:*BACKEND-INSTRUCTION-FORMATS*
|
||||
SB-C:*BACKEND-INSTRUCTION-FLAVORS*
|
||||
SB-VM:*PRIMITIVE-OBJECTS*
|
||||
SB-VM:*ASSEMBLY-UNIT-LENGTH*
|
||||
SB-VM::*FP-CONSTANT-L2E*
|
||||
|
|
@ -930,10 +921,10 @@ SB-VM::*IGNORE-AFTER*
|
|||
SB-VM::*IMM-WORD-PREFILTER-WRAPPER*
|
||||
SB-VM::*REGISTER-ARG-TNS*
|
||||
SB-VM::*IMM-DATA-PREFILTER-WRAPPER*
|
||||
SB-VM::*PRIMITIVE-TYPE-AUX-CACHE-VECTOR*
|
||||
SB-VM::*PRIMITIVE-TYPE-AUX-CACHE-VECTOR* ; threadsafe
|
||||
SB-VM::*LABEL-2-PREFILTER-WRAPPER*
|
||||
SB-VM::*ROOM-INFO*
|
||||
SB-VM::*ADJUSTABLE-VECTORS*
|
||||
SB-VM::*ADJUSTABLE-VECTORS* ; under **WORLD-LOCK** - should be done better
|
||||
SB-VM::*CONDITION-NAME-VEC*
|
||||
SB-VM::*IMM-WORD-16-PREFILTER-WRAPPER*
|
||||
SB-VM::*SIMPLE-ARRAY-PRIMITIVE-TYPES*
|
||||
|
|
@ -953,58 +944,56 @@ SB-KERNEL:*MAXIMUM-ERROR-DEPTH*
|
|||
SB-KERNEL:*CONDITION-RESTARTS* ; bound per-thread
|
||||
SB-KERNEL:*TYPE-SYSTEM-INITIALIZED*
|
||||
SB-KERNEL:*RESTART-CLUSTERS* ; bound per-thread
|
||||
SB-KERNEL::*MAKE-VALUES-TYPE-CACHED-CACHE-VECTOR*
|
||||
SB-KERNEL::*MAKE-VALUES-TYPE-CACHED-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*BUILT-IN-CLASS-CODES* ; readonly
|
||||
SB-KERNEL::*DEF!STRUCT-TYPE-MAKE-LOAD-FORM-FUN*
|
||||
SB-KERNEL::*LAYOUT-CLOS-HASH-RANDOM-STATE*
|
||||
SB-KERNEL::*TYPE-TEST-ORDERING*
|
||||
SB-KERNEL::*COMMON-TYPESPECS*
|
||||
SB-KERNEL::*TYPE=-CACHE-VECTOR*
|
||||
SB-KERNEL::*VALUES-SUBTYPEP-CACHE-VECTOR*
|
||||
SB-KERNEL::*TYPE=-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*VALUES-SUBTYPEP-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*TYPECHECKFUNS*
|
||||
SB-KERNEL::*%TYPE-INTERSECTION-CACHE-VECTOR*
|
||||
SB-KERNEL::*TYPE-INTERSECTION2-CACHE-VECTOR*
|
||||
SB-KERNEL::*%TYPE-INTERSECTION-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*TYPE-INTERSECTION2-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*COLD-INIT-FORMS*
|
||||
SB-KERNEL::*DEFAULT-DEFAULT*
|
||||
SB-KERNEL::*RAW-SLOT-DATA-LIST*
|
||||
SB-KERNEL::*SPECIALIZED-ARRAY-ELEMENT-TYPES* ; readonly
|
||||
SB-KERNEL::*DEFSTRUCT-HOOKS*
|
||||
SB-KERNEL::*VALUES-TYPE-UNION-CACHE-VECTOR*
|
||||
SB-KERNEL::*VALUES-TYPE-UNION-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*INTERNAL-ERRORS*
|
||||
SB-KERNEL::*VALUES-TYPE-INTERSECTION-CACHE-VECTOR*
|
||||
SB-KERNEL::*VALUES-TYPE-INTERSECTION-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*FORWARD-REFERENCED-LAYOUTS*
|
||||
SB-KERNEL::*SYSTEM-LETS* ; bound
|
||||
SB-KERNEL::*%COERCE-TO-VALUES-CACHE-VECTOR*
|
||||
SB-KERNEL::*%COERCE-TO-VALUES-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*IGNORABLE-VARS*
|
||||
SB-KERNEL::*ENV-VAR* ; bound
|
||||
SB-KERNEL::|*%%MAKE-UNION-TYPE-cached-CACHE-VECTOR*|
|
||||
SB-KERNEL::*CSUBTYPEP-CACHE-VECTOR*
|
||||
SB-KERNEL::|*%%MAKE-UNION-TYPE-cached-CACHE-VECTOR*| ; threadsafe
|
||||
SB-KERNEL::*CSUBTYPEP-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*EMPTY-CONDITION-SLOT*
|
||||
SB-KERNEL::*TYPE-UNION2-CACHE-VECTOR*
|
||||
SB-KERNEL::*TYPE-UNION2-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*TYPE-CLASS-FUN-SLOTS*
|
||||
SB-KERNEL::*ARG-TESTS* ; bound
|
||||
SB-KERNEL::*USER-LETS* ; bound
|
||||
SB-KERNEL::|*%%MAKE-ARRAY-TYPE-cached-CACHE-VECTOR*|
|
||||
SB-KERNEL::|*%%MAKE-ARRAY-TYPE-cached-CACHE-VECTOR*| ; threadsafe
|
||||
SB-KERNEL::*FINDING-NAME*
|
||||
SB-KERNEL::*TYPE-CLASSES*
|
||||
SB-KERNEL::*VALUES-SPECIFIER-TYPE-CACHE-VECTOR*
|
||||
SB-KERNEL::*VALUES-SPECIFIER-TYPE-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*FLOAT-FORMATS* ; readonly
|
||||
SB-KERNEL::*INTERNAL-ERROR-ARGS*
|
||||
SB-KERNEL::*DEF!STRUCT-SUPERTYPE*
|
||||
SB-KERNEL::*%TYPE-UNION-CACHE-VECTOR*
|
||||
SB-KERNEL::*CTYPE-OF-CACHE-VECTOR*
|
||||
SB-KERNEL::*%TYPE-UNION-CACHE-VECTOR* ; threadsafe
|
||||
SB-KERNEL::*CTYPE-OF-CACHE-VECTOR* ; threadsafe
|
||||
|
||||
SB-IMPL::*READ-BUFFER* ; FIXME: non-threadsafe
|
||||
SB-IMPL::*SECONDARY-ATTRIBUTE-TABLE*
|
||||
SB-IMPL::*READ-BUFFER* ; safe when used via WITH-READ-BUFFER
|
||||
SB-IMPL::*SECONDARY-ATTRIBUTE-TABLE* ; now *CONSTITUENT-TRAIT-TABLE*, constant
|
||||
SB-IMPL::*STANDARD-READTABLE*
|
||||
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::*DAYLIGHT-TABLE*
|
||||
SB-IMPL::*OFFENDING-DATUM*
|
||||
SB-IMPL::*HANDLERS-INSTALLED*
|
||||
SB-IMPL::*READ-FROM-STRING-SPARES*
|
||||
SB-IMPL::*HASH-TABLE-TESTS*
|
||||
SB-IMPL::*ATTRIBUTE-NAMES*
|
||||
SB-IMPL::*DAYS-BEFORE-MONTH* ; readonly
|
||||
|
|
@ -1013,11 +1002,10 @@ SB-IMPL::*UNIX-HOST*
|
|||
SB-IMPL::*DESCRIPTOR-HANDLERS*
|
||||
SB-IMPL::*STRING-OUTPUT-STREAMS*
|
||||
SB-IMPL::*CLOSE-ON-ERROR*
|
||||
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::*PROFILE-HASH-CACHE*
|
||||
SB-IMPL::*PROFILE-HASH-CACHE* ; not threadsafe, but don't care- debug only
|
||||
SB-IMPL::*FIXNUM-POWER--1*
|
||||
SB-IMPL::*SHARP-EQUAL-CIRCLE-TABLE*
|
||||
SB-IMPL::*SOFTWARE-INTERRUPT-VECTOR* ; suspect unused
|
||||
|
|
@ -1031,13 +1019,12 @@ SB-IMPL::*CIRCULARITY-HASH-TABLE*
|
|||
SB-IMPL::*LOAD-PRINT-STUFF*
|
||||
SB-IMPL::*ACTIVE-PROCESSES*
|
||||
SB-IMPL::*SHARP-SHARP-ALIST*
|
||||
SB-IMPL::*BASE-POWER*
|
||||
SB-IMPL::*LOGICAL-PATHNAME-DEFAULTS*
|
||||
SB-IMPL::*AVAILABLE-BUFFERS*
|
||||
SB-IMPL::*BQ-DOT-FLAG* ; readonly
|
||||
SB-IMPL::*CIRCULARITY-COUNTER*
|
||||
SB-IMPL::*DIGITS*
|
||||
SB-IMPL::*PREVIOUS-READTABLE-CASE* ; FIXME: printer not threadsafe
|
||||
SB-IMPL::*PREVIOUS-READTABLE-CASE* ; bound per-thread
|
||||
SB-IMPL::*BQ-VECTOR-FLAG* ; readonly
|
||||
SB-IMPL::*ABBREV-WEEKDAY-TABLE*
|
||||
SB-IMPL::*LOGICAL-HOSTS*
|
||||
|
|
@ -1057,17 +1044,14 @@ SB-IMPL::*PREVIOUS-DRIBBLE-STREAMS*
|
|||
SB-IMPL::*MAX-EVENT-TO-USEC*
|
||||
SB-IMPL::*INPUT-ROUTINES*
|
||||
SB-IMPL::*MAX-EVENT-TO-SEC*
|
||||
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::*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::*INCH-PTR* ; FIXME: non-threadsafe
|
||||
SB-IMPL::*SHARP-EQUAL-ALIST*
|
||||
SB-IMPL::*PREVIOUS-CASE* ; FIXME: printer not threadsafe
|
||||
SB-IMPL::*PREVIOUS-CASE* ; bound per-thread
|
||||
|
||||
*INLINE-EXPANSION-LIMIT*
|
||||
*DERIVE-FUNCTION-TYPES*
|
||||
|
|
@ -1086,8 +1070,8 @@ SB-INT:*CL-PACKAGE* ; readonly
|
|||
SB-INT:*KEYWORD-PACKAGE* ; readonly
|
||||
SB-INT:*SETF-FDEFINITION-HOOK*
|
||||
SB-INT:*DEFAULT-INIT-CHAR-FORM*
|
||||
SB-INT:*EOF-OBJECT*
|
||||
SB-INT:*EOF-OBJECT* ; readonly
|
||||
SB-INT:*AFTER-SAVE-INITIALIZATIONS*
|
||||
SB-INT:*LOAD-SOURCE-DEFAULT-TYPE*
|
||||
SB-INT:*BEFORE-SAVE-INITIALIZATIONS*
|
||||
SB-INT:*INFO-ENVIRONMENT*
|
||||
SB-INT:*INFO-ENVIRONMENT* ; threadsafe
|
||||
|
|
|
|||
|
|
@ -146,6 +146,7 @@
|
|||
;;; In a bootstrapping situation, we should be careful to use the
|
||||
;;; correct values for the system parameters.
|
||||
;;;
|
||||
;;; Meta: the following comment is not true. Should remove the AUX fn.
|
||||
;;; We need an aux function because we need to use both
|
||||
;;; !DEF-VM-SUPPORT-ROUTINE and DEFUN-CACHED.
|
||||
(/show0 "primtype.lisp 188")
|
||||
|
|
|
|||
Loading…
Reference in a new issue