0.pre7.38:
[sbcl.git] / package-data-list.lisp-expr
index 8f2e169..28eff37 100644 (file)
@@ -1,9 +1,16 @@
-;;;; the specifications of SBCL-specific packages, except..
+;;;; -*- Lisp -*-
+
+;;;; the specifications of target packages, except for a few things
+;;;; which are handled elsewhere by other mechanisms:
 ;;;;   * the creation of the trivial SB-SLOT-ACCESSOR-NAME package
 ;;;;   * any SHADOWing hackery
-;;;; The standard, non-SBCL-specific packages COMMON-LISP,
-;;;; COMMON-LISP-USER, and KEYWORD are also handled through other
-;;;; mechanisms.
+;;;;   * the standard, non-SBCL-specific packages COMMON-LISP,
+;;;;     COMMON-LISP-USER, and KEYWORD
+;;;;
+;;;; The packages are named SB!FOO here and elsewhere in
+;;;; cross-compilation, in order to avoid collision with corresponding
+;;;; SB-FOO packages in the cross-compilation host. They're renamed to
+;;;; SB-FOO later, after the danger of collision has passed.
 
 ;;;; This software is part of the SBCL system. See the README file for
 ;;;; more information.
     :reexport ("ARRAY" "BOOLEAN" "DOUBLE-FLOAT" "LONG-FLOAT" "FUNCTION"
                "INTEGER" "SINGLE-FLOAT" "UNION"  "SYSTEM-AREA-POINTER"
                "VALUES" "*")
-    :export ("ADDR" "ALIEN" "ALIEN-FUNCALL" "ALIEN-SAP"
-             "ALIEN-SIZE" "ALIEN-BOOLEAN" "CAST" "DEF-ALIEN-ROUTINE"
-             "DEF-ALIEN-TYPE" "DEF-ALIEN-VARIABLE" "DEF-BUILTIN-ALIEN-TYPE"
-             "DEREF" "ENUM" "EXTERN-ALIEN"
+    :export ("ADDR" "ALIEN" "ALIEN-FUNCALL" "ALIEN-SAP" "ALIEN-SIZE" 
+            "CAST"
+            "DEF-ALIEN-ROUTINE" "DEF-ALIEN-TYPE"
+            "DEF-ALIEN-VARIABLE" "DEF-BUILTIN-ALIEN-TYPE"
+             "DEREF"
+            "ENUM" "EXTERN-ALIEN"
+            "FREE-ALIEN" 
+             "LOAD-FOREIGN" "LOAD-1-FOREIGN"
+            "MAKE-ALIEN"
+            "NULL-ALIEN"
              "SAP-ALIEN" "SIGNED" "SLOT" "STRUCT"
-             "UNSIGNED" "WITH-ALIEN" "FREE-ALIEN" "NULL-ALIEN"
-             "MAKE-ALIEN"
-             "LOAD-FOREIGN" "LOAD-1-FOREIGN"))
+             "UNSIGNED"
+            "WITH-ALIEN"))
 
  #s(sb-cold:package-data
     :name "SB!ALIEN-INTERNALS"
@@ -71,7 +83,8 @@
              "LOCAL-ALIEN-INFO-P" "LOCAL-ALIEN-INFO-TYPE"
              "MAKE-ALIEN-FUNCTION-TYPE" "MAKE-ALIEN-POINTER-TYPE"
              "MAKE-ALIEN-VALUE"
-             "MAKE-LOCAL-ALIEN" "NATURALIZE" "NOTE-LOCAL-ALIEN-TYPE"
+             "MAKE-LOCAL-ALIEN" "NATURALIZE"
+             "NOTE-LOCAL-ALIEN-TYPE"
              "PARSE-ALIEN-TYPE" "UNPARSE-ALIEN-TYPE"))
 
  #s(sb-cold:package-data
              "MULTIPLY-FIXNUMS" "NEGATE-BIGNUM"
              "SUBTRACT-BIGNUM" "SXHASH-BIGNUM"))
 
+ ;; FIXME: byte compiler/interpreter to go away completely
+ #|
+ #s(sb-cold:package-data
+    :name "SB!BYTECODE"
+    :doc "private: stuff related to the bytecode interpreter"
+    :use ("CL" "SB!EXT" "SB!INT" "SB!KERNEL")
+    :export ())
+ |#
+
  #s(sb-cold:package-data
     :name "SB!C"
     :doc "private: implementation of the compiler"
     ;; (It seems strange to have the compiler USE SB-ALIEN-INTERNALS,
     ;; but the point seems to be to be able to express things like
-    ;; SB-C:DEFTRANSFORM SB-ALIEN-INTERNALS:MAKE-LOCAL-ALIEN without
+    ;; SB!C:DEFTRANSFORM SB-ALIEN-INTERNALS:MAKE-LOCAL-ALIEN without
     ;; having to use a bunch of package prefixes, by putting them
     ;; in the SB-C package. Maybe it'd be tidier to define an SB-ALIEN-COMP
     ;; package for this? But it seems like a fairly low priority.)
           #!+sb-dyncount "SB-DYNCOUNT" "SB!EXT" "SB!FASL" "SB!INT"
           "SB!KERNEL" "SB!SYS")
     :reexport ("SLOT" "CODE-INSTRUCTIONS" "FLUSHABLE")
-    :export ("%ALIEN-FUNCALL" "%CATCH-BREAKUP" "%CONTINUE-UNWIND" "&MORE"
+    :export ("%ALIEN-FUNCALL" "%CATCH-BREAKUP" "%CONTINUE-UNWIND" 
               "%LISTIFY-REST-ARGS" "%MORE-ARG" "%MORE-ARG-VALUES"
               "%UNWIND-PROTECT-BREAKUP"
 
               "*BACKEND-BYTE-ORDER*" "*BACKEND-DISASSEM-PARAMS*"
-              "*BACKEND-INFO-ENVIRONMENT*"
               "*BACKEND-INSTRUCTION-FLAVORS*" "*BACKEND-INSTRUCTION-FORMATS*"
               "*BACKEND-INTERNAL-ERRORS*" "*BACKEND-PAGE-SIZE*"
               "*BACKEND-REGISTER-SAVE-PENALTY*"
               "*BACKEND-T-PRIMITIVE-TYPE*"
 
               "*CODE-SEGMENT*" 
-              "*CONVERTING-FOR-INTERPRETER*"
-              "*COUNT-VOP-USAGES*" "*ELSEWHERE*"
+              "*COUNT-VOP-USAGES*" "*ELSEWHERE*" "*FREE-FUNCTIONS*"
               "*SETF-ASSUMED-FBOUNDP*"
               "*SUPPRESS-VALUES-DECLARATION*"
 
               "CHECK-SIGNED-BYTE-32" "CHECK-SYMBOL" "CHECK-UNSIGNED-BYTE-32"
               "CLOSURE-INIT" "CLOSURE-REF"
               "CODE-CONSTANT-REF" "CODE-CONSTANT-SET" 
-              "COMPILE-FOR-EVAL" "COMPILER-ERROR"
+             "COMPILE-LAMBDA-FOR-DEFUN"
+              "%COMPILER-DEFUN" "COMPILER-ERROR"
               "COMPONENT" "COMPONENT-HEADER-LENGTH"
               "COMPONENT-INFO" "COMPONENT-LIVE-TN" "COMPUTE-FUNCTION"
               "COMPUTE-OLD-NFP" "COPY-MORE-ARG" 
               "ENTRY-NODE-INFO-NLX-TAG" "ENTRY-NODE-INFO-ST-TOP"
               "ENVIRONMENT-DEBUG-LIVE-TN" "ENVIRONMENT-LIVE-TN"
               "FAST-SYMBOL-FUNCTION" "FAST-SYMBOL-VALUE" "FOLDABLE"
-              "FORCE-TN-TO-STACK" "GET-VECTOR-SUBTYPE"
-              "HALT" "IF-EQ" "INSTANCE-REF" "INSTANCE-SET"
+              "FORCE-TN-TO-STACK"
+             "GET-VECTOR-SUBTYPE"
+              "HALT"
+             "IF-EQ" "INLINE-SYNTACTIC-CLOSURE-LAMBDA"
+             "INSTANCE-REF" "INSTANCE-SET"
               "IR2-COMPONENT-CONSTANTS" "IR2-CONVERT"
-              "IR2-ENVIRONMENT-NUMBER-STACK-P" "KNOWN-CALL-LOCAL"
-              "KNOWN-RETURN" "LAMBDA-EVAL-INFO-ARGS-PASSED"
-              "LAMBDA-EVAL-INFO-ENTRIES" "LAMBDA-EVAL-INFO-FRAME-SIZE"
-              "LAMBDA-EVAL-INFO-FUNCTION" "LOCATION=" "LTN-ANNOTATE"
+              "IR2-ENVIRONMENT-NUMBER-STACK-P"
+             "KNOWN-CALL-LOCAL" "KNOWN-RETURN"
+             "LAMBDA-INDEPENDENT-OF-LEXENV-P"
+             "LAMBDA-WITH-LEXENV" "LOCATION=" "LTN-ANNOTATE"
               "MAKE-ALIAS-TN" "MAKE-CATCH-BLOCK"
               "MAKE-CLOSURE" "MAKE-CONSTANT-TN" "MAKE-FIXNUM"
               "MAKE-LOAD-TIME-CONSTANT-TN" "MAKE-N-TNS" "MAKE-NORMAL-TN"
               "MAKE-OTHER-IMMEDIATE-TYPE" "MAKE-RANDOM-TN"
               "MAKE-REPRESENTATION-TN" "MAKE-RESTRICTED-TN" "MAKE-SC-OFFSET"
               "MAKE-STACK-POINTER-TN" "MAKE-TN-REF" "MAKE-UNWIND-BLOCK"
-              "MAKE-VALUE-CELL" "MAKE-WIRED-TN" "MAYBE-COMPILER-NOTE"
+             "MAKE-WIRED-TN" "MAYBE-COMPILER-NOTE"
               "META-PRIMITIVE-TYPE-OR-LOSE"
               "META-SB-OR-LOSE" "META-SC-NUMBER-OR-LOSE" "META-SC-OR-LOSE"
               "MORE-ARG-CONTEXT" "MOVABLE" "MOVE" "MULTIPLE-CALL"
               "MULTIPLE-CALL-LOCAL" "MULTIPLE-CALL-NAMED"
-              "MULTIPLE-CALL-VARIABLE" "NLX-ENTRY" "NLX-ENTRY-MULTIPLE"
+             "MULTIPLE-CALL-VARIABLE"
+             "NLX-ENTRY" "NLX-ENTRY-MULTIPLE"
               "NON-DESCRIPTOR-STACK" "NOTE-ENVIRONMENT-START"
               "NOTE-THIS-LOCATION" "OPTIMIZER" "PACK-TRACE-TABLE"
+              "PARSE-EVAL-WHEN-SITUATIONS"
               "POLICY" "PREDICATE" "PRIMITIVE-TYPE" "PRIMITIVE-TYPE-OF"
               "PRIMITIVE-TYPE-OR-LOSE" "PRIMITIVE-TYPE-VOP"
               "PRIMITIVE-TYPE-NAME" "PUSH-VALUES"
               "TN-REF-TN" "TN-REF-VOP" "TN-REF-WRITE-P" "TN-SC" "TN-VALUE"
               "TRACE-TABLE-ENTRY" "TYPE-CHECK-ERROR" "UNBIND" "UNBIND-TO-HERE"
               "UNSAFE" "UNWIND" "UWP-ENTRY"
-              "VALUE-CELL-REF" "VALUE-CELL-SET"
               "VERIFY-ARGUMENT-COUNT" "WRITE-PACKED-BIT-VECTOR"
               "WRITE-VAR-INTEGER" "WRITE-VAR-STRING" "XEP-ALLOCATE-FRAME"
               "LABEL-ID" "FIXUP" "FIXUP-FLAVOR" "FIXUP-NAME" "FIXUP-OFFSET"
           "SB!EXT" "SB!INT" "SB!KERNEL" "SB!SYS")
     :export ("*ASSEMBLER-ROUTINES*"
              "+BACKEND-FASL-FILE-IMPLEMENTATION+"
-             "*BACKEND-FASL-FILE-TYPE*"
+             "*FASL-FILE-TYPE*"
              "CLOSE-FASL-OUTPUT"
              "DUMP-ASSEMBLER-ROUTINES"
              "DUMP-OBJECT"
              "+FASL-FILE-VERSION+"
              "FASL-DUMP-BYTE-COMPONENT"
              "FASL-DUMP-COLD-LOAD-FORM" "FASL-DUMP-COMPONENT"
+             "FASL-DUMP-COLD-FSET"
              "FASL-DUMP-LOAD-TIME-VALUE" "FASL-DUMP-LOAD-TIME-VALUE-LAMBDA"
              "FASL-DUMP-SOURCE-INFO" "FASL-DUMP-TOP-LEVEL-LAMBDA-CALL"
              "FASL-NOTE-HANDLE-FOR-CONSTANT"
-             "FASL-OUTPUT" "FASL-OUTPUT-P" "FASL-OUTPUT-STREAM"
+             "FASL-OUTPUT" "FASL-OUTPUT-P"
+            "FASL-OUTPUT-ENTRY-TABLE" "FASL-OUTPUT-STREAM"
              "FASL-VALIDATE-STRUCTURE"
              "*!LOAD-TIME-VALUES*"
              "LOAD-TYPE-PREDICATE"
 debugger interface mixed with various low-level implementation stuff
 like *STACK-TOP-HINT*"
     :use ("CL" "SB!EXT" "SB!INT" "SB!SYS")
-    :export ("*AUTO-EVAL-IN-FRAME*" "*DEBUG-BEGINNER-HELP-P*"
+    :export ("*DEBUG-BEGINNER-HELP-P*"
              "*DEBUG-CONDITION*"
              "*DEBUG-PRINT-LENGTH*" "*DEBUG-PRINT-LEVEL*"
              "*DEBUG-READTABLE*" "*DEBUG-HELP-STRING*"
@@ -388,7 +415,7 @@ like *STACK-TOP-HINT*"
                "DEBUG-SOURCE-CREATED" "DEBUG-SOURCE-COMPILED"
                "DEBUG-SOURCE-START-POSITIONS" "DEBUG-SOURCE"
                "DEBUG-SOURCE-P")
-    :export ("*DEBUGGING-INTERPRETER*" "ACTIVATE-BREAKPOINT"
+    :export ("ACTIVATE-BREAKPOINT"
              "AMBIGUOUS-DEBUG-VARS" "AMBIGUOUS-VARIABLE-NAME" "BREAKPOINT"
              "BREAKPOINT-ACTIVE-P" "BREAKPOINT-HOOK-FUNCTION" "BREAKPOINT-INFO"
              "BREAKPOINT-KIND" "BREAKPOINT-P" "BREAKPOINT-WHAT" "CODE-LOCATION"
@@ -409,7 +436,7 @@ like *STACK-TOP-HINT*"
              "DEBUG-VAR-VALIDITY" "DEBUG-VAR-VALUE"
              "DELETE-BREAKPOINT" "DO-BLOCKS"
              "DO-DEBUG-BLOCK-LOCATIONS" "DO-DEBUG-FUNCTION-BLOCKS"
-             "DO-DEBUG-FUNCTION-VARIABLES" "EVAL-IN-FRAME"
+             "DO-DEBUG-FUNCTION-VARIABLES"
              "FORM-NUMBER-TRANSLATIONS" "FRAME" "FRAME-CATCHES"
              "FRAME-CODE-LOCATION" "FRAME-DEBUG-FUNCTION" "FRAME-DOWN"
              "FRAME-FUNCTION-MISMATCH" "FRAME-NUMBER" "FRAME-P" "FRAME-UP"
@@ -473,24 +500,6 @@ like *STACK-TOP-HINT*"
              "ADD-OFFS-NOTE-HOOK" "ADD-OFFS-COMMENT-HOOK"
              "DSTATE-CUR-ADDR" "DSTATE-NEXT-ADDR"))
 
- #!+sb-interpreter
- #s(sb-cold:package-data
-    :name "SB!EVAL"
-    :doc "private: the implementation of the IR1 interpreter"
-    :use ("CL" "SB!KERNEL" "SB!INT")
-    :export ("*EVAL-STACK-TRACE*" "*INTERNAL-APPLY-NODE-TRACE*"
-             "FLUSH-INTERPRETED-FUNCTION-CACHE" "INTERNAL-EVAL"
-             "INTERPRETED-FUNCTION"
-             "INTERPRETED-FUNCTION-ARGLIST"
-             "INTERPRETED-FUNCTION-CLOSURE"
-             "INTERPRETED-FUNCTION-LAMBDA-EXPRESSION"
-             "INTERPRETED-FUNCTION-NAME"
-             "INTERPRETED-FUNCTION-P"
-             "INTERPRETED-FUNCTION-TYPE"
-             "MAKE-INTERPRETED-FUNCTION"
-             "PRINT-INTERPRETED-FUNCTION-OBJECT"
-             "TRACE-EVAL"))
-
  #s(sb-cold:package-data
     :name "SB!EXT"
     :doc "public: miscellaneous supported extensions to the ANSI Lisp spec"
@@ -516,6 +525,10 @@ like *STACK-TOP-HINT*"
              ;; There is no one right way to do DESCRIBE.
              "*DESCRIBE-INDENTATION-STEP*"
 
+             ;; It can be handy to be able to evaluate expressions involving
+             ;; the thing under examination by CL:INSPECT.
+             "*INSPECTED*"
+
              ;; There is no one right way to do efficiency notes.
              "*EFFICIENCY-NOTE-COST-THRESHOLD*" "*EFFICIENCY-NOTE-LIMIT*"
 
@@ -547,16 +560,16 @@ like *STACK-TOP-HINT*"
              "*USE-IMPLEMENTATION-TYPES*"
              "*BYTE-COMPILE-TOP-LEVEL*"
              "*BYTE-COMPILE-DEFAULT*"
-             "*DERIVE-FUNCTION-TYPES*" ; FIXME FIXME FIXME FIXME..
+             "*DERIVE-FUNCTION-TYPES*"
 
              ;; a special form for breaking out of our "declarations
              ;; are assertions" default
              "TRULY-THE"
 
-             ;; This is something which must exist inside any Common Lisp
-             ;; implementation, and which someone writing a customized toplevel
-             ;; might well want. It seems perverse to hide it from
-             ;; them..
+             ;; This is something which must exist inside any Common
+             ;; Lisp implementation, and which someone writing a
+             ;; customized toplevel might well want. It seems perverse
+             ;; to hide it from them..
              "INTERACTIVE-EVAL"
 
              ;; weak pointers and finalization
@@ -641,6 +654,9 @@ retained, possibly temporariliy, because it might be used internally."
              "*ALL-MODIFIER-NAMES*"
              "*BACKUP-EXTENSION*"
 
+            ;; lambda list keyword extensions
+            "&MORE"
+
              ;; INFO stuff doesn't belong in a user-visible package, we
              ;; should be able to change it without apology.
              "*INFO-ENVIRONMENT*"
@@ -684,11 +700,27 @@ retained, possibly temporariliy, because it might be used internally."
              ;; in the cross-compiler's environment
              "DEF!MACRO" "DEF!METHOD" "DEF!STRUCT" "DEF!TYPE"
 
+             ;; other variations on DEFFOO stuff useful for bootstrapping
+             ;; and cross-compiling
+             "DEFMACRO-MUNDANELY"
+             "DEFCONSTANT-EQX"
+
              ;; messing with PATHNAMEs
              "MAKE-TRIVIAL-DEFAULT-PATHNAME"
              "PHYSICALIZE-PATHNAME"
              "SANE-DEFAULT-PATHNAME-DEFAULTS"
 
+             ;; PCOUNTERs
+             "FASTBIG-INCF-PCOUNTER-OR-FIXNUM"
+             "INCF-PCOUNTER"
+             "INCF-PCOUNTER-OR-FIXNUM"
+             "MAKE-PCOUNTER"             
+             "PCOUNTER"
+             "PCOUNTER->INTEGER"
+             "PCOUNTER-OR-FIXNUM->INTEGER"
+             "PCOUNTER-P"
+             "*N-BYTES-FREED-OR-PURIFIED*"
+
              ;; miscellaneous non-standard but handy user-level functions..
              "ASSQ" "DELQ" "MEMQ" "POSQ" "NEQ"
              "%FIND-PACKAGE-OR-LOSE" "FIND-UNDELETED-PACKAGE-OR-LOSE"
@@ -704,6 +736,7 @@ retained, possibly temporariliy, because it might be used internally."
              ;; ..and macros..
              "COLLECT"
              "DO-ANONYMOUS" "DOHASH" "DOVECTOR"
+            "NAMED-LAMBDA"
              "NAMED-LET"
              "ONCE-ONLY"
              "DEFENUM"
@@ -737,12 +770,6 @@ retained, possibly temporariliy, because it might be used internally."
              ;; symbol-hacking idioms
              "KEYWORDICATE" "SYMBOLICATE"
 
-             ;; search lists (FIXME: should go away)
-             "ENUMERATE-SEARCH-LIST"
-             "CLEAR-SEARCH-LIST"
-             "SEARCH-LIST"
-             "SEARCH-LIST-DEFINED-P"
-
              ;; certainly doesn't belong in public extensions
              ;; FIXME: maybe belongs in %KERNEL with other typesystem stuff?
              "CONSTANT-ARGUMENT"
@@ -802,6 +829,7 @@ retained, possibly temporariliy, because it might be used internally."
              "PACKAGE-INTERNAL-SYMBOL-COUNT" "PACKAGE-EXTERNAL-SYMBOL-COUNT"
              "PROPER-LIST-OF-LENGTH-P"
              "LIST-OF-LENGTH-AT-LEAST-P"
+             "LIST-WITH-LENGTH-P"
              "READ-SEQUENCE-OR-DIE"
              "RENAME-KEY-ARGS"
              "REQUIRED-ARGUMENT"
@@ -809,24 +837,25 @@ retained, possibly temporariliy, because it might be used internally."
              "FEATUREP"
              "FLUSH-STANDARD-OUTPUT-STREAMS"
              "MAKE-GENSYM-LIST"
-             "DEFCONSTANT-EQX"
              "ABOUT-TO-MODIFY"
              "PRINT-PRETTY-ON-STREAM-P"
+             "LOOKS-LIKE-NAME-OF-SPECIAL-VAR-P"
+             "POSITIVE-PRIMEP" 
 
              ;; These could be moved back into SB!EXT if someone has
              ;; compelling reasons, but hopefully we can get by
              ;; without supporting them, at least not as publicly
              ;; accessible things with fixed interfaces.
-             "GET-FLOATING-POINT-MODES" "SET-FLOATING-POINT-MODES"
+             "GET-FLOATING-POINT-MODES"
+             "SET-FLOATING-POINT-MODES"
              "WITH-FLOAT-TRAPS-MASKED"
              "DEFINE-HASH-TABLE-TEST"
-             "*GC-INHIBIT-HOOK*"
 
              ;; compatibility hacks for old-style CMU CL data formats
              "UNIX-ENVIRONMENT-CMUCL-FROM-SBCL"
              "UNIX-ENVIRONMENT-SBCL-FROM-CMUCL"
 
-             ;; a sort of quasi unbound tag for use in hash tables
+             ;; a sort of quasi-unbound tag for use in hash tables
              "+EMPTY-HT-SLOT+"
 
              ;; low-level i/o stuff
@@ -844,22 +873,11 @@ retained, possibly temporariliy, because it might be used internally."
              "PREPARE-FOR-FAST-READ-BYTE"
              "PREPARE-FOR-FAST-READ-CHAR"
 
-             ;; not used any more, I think -- WHN 19991206
-             #+nil
-             ("SERVE-BUTTON-PRESS"
-              "SERVE-BUTTON-RELEASE" "SERVE-CIRCULATE-NOTIFY"
-              "SERVE-CIRCULATE-REQUEST" "SERVE-CLIENT-MESSAGE"
-              "SERVE-COLORMAP-NOTIFY" "SERVE-CONFIGURE-NOTIFY"
-              "SERVE-CONFIGURE-REQUEST" "SERVE-CREATE-NOTIFY"
-              "SERVE-DESTROY-NOTIFY" "SERVE-ENTER-NOTIFY" "SERVE-EXPOSURE"
-              "SERVE-FOCUS-IN" "SERVE-FOCUS-OUT" "SERVE-GRAPHICS-EXPOSURE"
-              "SERVE-GRAVITY-NOTIFY" "SERVE-KEY-PRESS" "SERVE-KEY-RELEASE"
-              "SERVE-LEAVE-NOTIFY" "SERVE-MAP-NOTIFY" "SERVE-MAP-REQUEST"
-              "SERVE-MOTION-NOTIFY" "SERVE-NO-EXPOSURE" "SERVE-PROPERTY-NOTIFY"
-              "SERVE-REPARENT-NOTIFY" "SERVE-RESIZE-REQUEST"
-              "SERVE-SELECTION-CLEAR" "SERVE-SELECTION-NOTIFY"
-              "SERVE-SELECTION-REQUEST" "SERVE-UNMAP-NOTIFY"
-              "SERVE-VISIBILITY-NOTIFY")))
+            ;; hackery to help set up for cold init
+             "!BEGIN-COLLECTING-COLD-INIT-FORMS"
+            "!COLD-INIT-FORMS" 
+            "COLD-FSET"
+             "!DEFUN-FROM-COLLECTED-COLD-INIT-FORMS"))
 
  #s(sb-cold:package-data
     :name "SB!ITERATE"
@@ -872,12 +890,18 @@ retained, possibly temporariliy, because it might be used internally."
              "MAXIMIZING" "MINIMIZING" "SUMMING"
              "*ITERATE-WARNINGS*"))
 
+ ;; FIXME: This package is awfully huge. It'd probably be good to
+ ;; split it. There's at least one natural way to split it: the
+ ;; implementation of the Lisp type system (e.g. TYPE-INTERSECTION and
+ ;; SPECIFIER-TYPE) could move to a separate package SB!TYPE. (There's
+ ;; lots of stuff which currently uses the SB!KERNEL package which
+ ;; doesn't actually use the type system stuff.)
  #s(sb-cold:package-data
     :name "SB!KERNEL"
     :doc
 "private: Theoretically this 'hides state and types used for package
 integration' (said CMU CL architecture.tex) and that probably was and
-is a good idea, but see SB-SYS for blurring of boundaries."
+is a good idea, but see SB-SYS re. blurring of boundaries."
     :use ("CL" "SB!ALIEN" "SB!ALIEN-INTERNALS" "SB!BIGNUM"
           "SB!EXT" "SB!FASL" "SB!INT" "SB!SYS" "SB!GRAY")
     :import-from (("SB!C-CALL" "VOID"))
@@ -893,6 +917,8 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "%CLOSURE-INDEX-REF" "%COS" "%COS-QUICK"
              "%COSH" "%DEPOSIT-FIELD"
              "%DOUBLE-FLOAT" "%DPB" "%EXP" "%EXPM1"
+             "%FIND-POSITION" "%FIND-POSITION-VECTOR-MACRO"
+             "%FIND-POSITION-IF" "%FIND-POSITION-IF-VECTOR-MACRO"
              "%HYPOT" "%INSTANCE-SET-CONDITIONAL" "%LDB"
              "%LOG" "%LOGB" "%LOG10" "%LOG1P" "%LONG-FLOAT"
              "%MAKE-COMPLEX" "%MAKE-FUNCALLABLE-INSTANCE" "%MAKE-RATIO"
@@ -919,12 +945,13 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "%SQRT" "%SXHASH-SIMPLE-STRING"
              "%SXHASH-SIMPLE-SUBSTRING" "%TAN" "%TAN-QUICK"
              "%TANH" "%UNARY-ROUND" "%UNARY-TRUNCATE"
-             "%WITH-ARRAY-DATA" "WITH-ARRAY-DATA"
+             "%WITH-ARRAY-DATA" "%WITH-ARRAY-DATA-MACRO" 
              "*ALREADY-MAYBE-GCING*"
              "*CURRENT-LEVEL*" "*EMPTY-TYPE*"
-             "*EVAL-STACK-TOP*" "*GC-INHIBIT*"
+             "*EVAL-STACK*" "*EVAL-STACK-TOP*" "*GC-INHIBIT*"
              "*NEED-TO-COLLECT-GARBAGE*"
              "*PRETTY-PRINTER*" "*UNIVERSAL-TYPE*"
+             "*UNIVERSAL-FUNCTION-TYPE*"
              "*UNPARSE-FUNCTION-TYPE-SIMPLIFY*" "*WILD-TYPE*"
              "32BIT-LOGICAL-AND" "32BIT-LOGICAL-ANDC1"
              "32BIT-LOGICAL-ANDC2"
@@ -945,7 +972,6 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "ARRAY-TYPE-P"
              "ARRAY-TYPE-SPECIALIZED-ELEMENT-TYPE" "ASH-INDEX"
              "ASSERT-ERROR" "BASE-CHAR-P"
-             "!BEGIN-COLLECTING-COLD-INIT-FORMS"
              "BINDING-STACK-POINTER-SAP" "BIT-BASH-AND"
              "BIT-BASH-ANDC1"
              "BIT-BASH-ANDC2" "BIT-BASH-CLEAR" "BIT-BASH-COPY"
@@ -965,11 +991,11 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "CODE-COMPONENT" "CODE-COMPONENT-P"
              "CODE-DEBUG-INFO" "CODE-HEADER-REF" "CODE-HEADER-SET"
              "CODE-INSTRUCTIONS"
-             "COERCE-TO-BIT-VECTOR" "COERCE-TO-FUNCTION"
+             "COERCE-TO-BIT-VECTOR" "COERCE-TO-FUNCTION" "COERCE-TO-LEXENV"
              "COERCE-TO-LIST" "COERCE-TO-SIMPLE-STRING"
              "COERCE-TO-SIMPLE-VECTOR" "COERCE-TO-VECTOR"
              "*COLD-INIT-COMPLETE-P*"
-             "!COLD-INIT-FORMS" "COMPLEX-DOUBLE-FLOAT-P"
+             "COMPLEX-DOUBLE-FLOAT-P"
              "COMPLEX-FLOAT-P" "COMPLEX-LONG-FLOAT-P"
              "COMPLEX-RATIONAL-P" "COMPLEX-SINGLE-FLOAT-P" "COMPLEX-VECTOR-P"
              "COMPOUND-TYPE" "COMPOUND-TYPE-P" "COMPOUND-TYPE-TYPES"
@@ -992,9 +1018,10 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "DOUBLE-FLOAT-INT-EXPONENT" "DOUBLE-FLOAT-LOW-BITS"
              "DOUBLE-FLOAT-SIGNIFICAND"
              "DOUBLE-FLOAT-P" "FLOAT-WAIT"
-             "DYNAMIC-SPACE-FREE-POINTER"
-             "!DEFUN-FROM-COLLECTED-COLD-INIT-FORMS"
-             "ERROR-NUMBER-OR-LOSE" "FDEFINITION-OBJECT"
+             "DYNAMIC-SPACE-FREE-POINTER" "DYNAMIC-USAGE"
+             "ERROR-NUMBER-OR-LOSE"
+             "FAILED-%WITH-ARRAY-DATA"
+             "FDEFINITION-OBJECT"
              "FDOCUMENTATION" "FILENAME"
              "FIND-AND-INIT-OR-CHECK-LAYOUT"
              "FLOAT-EXPONENT" "FLOAT-FORMAT-DIGITS" "FLOAT-FORMAT-NAME"
@@ -1016,6 +1043,7 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "HAIRY-TYPE-CHECK-TEMPLATE-NAME" "HAIRY-TYPE-SPECIFIER"
              "HANDLE-CIRCULARITY" "IGNORE-IT"
              "ILL-BIN" "ILL-BOUT" "ILL-IN" "ILL-OUT"
+             "INDEX-OR-MINUS-1"
              "INDEX-TOO-LARGE-ERROR"
              "*!INITIAL-ASSEMBLER-ROUTINES*"
              "*!INITIAL-FDEFN-OBJECTS*" "*!INITIAL-FOREIGN-SYMBOLS*"
@@ -1054,10 +1082,11 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "MAKE-NULL-LEXENV" "MAKE-NUMERIC-TYPE"
              "MAKE-SINGLE-FLOAT" "MAKE-SPECIALIZABLE-ARRAY"
              "%MAKE-INSTANCE"
+            "MAKE-VALUE-CELL"
              "MAKE-VALUES-TYPE"
              "MAYBE-GC" "MEMBER-TYPE" "MEMBER-TYPE-MEMBERS"
              "MEMBER-TYPE-P" "MERGE-BITS" "MODIFIED-NUMERIC-TYPE"
-             "DEFMACRO-MUNDANELY" "MUTATOR-SELF"
+             "MUTATOR-SELF"
              "NAMED-TYPE" "NAMED-TYPE-NAME" "NAMED-TYPE-P"
              "NATIVE-BYTE-ORDER" "NEGATE"
              "NEVER-SUBTYPEP" "NIL-FUNCTION-RETURNED-ERROR"
@@ -1162,7 +1191,6 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "STRING-TO-SIMPLE-STRING"
              "SYSTEM-AREA-CLEAR"
              "SYSTEM-AREA-COPY" "TWO-ARG-*"
-             "TRY-TO-RENAME-INTERPRETED-FUNCTION-AS-MACRO"
              "TWO-ARG-+" "TWO-ARG--"
              "TWO-ARG-/" "TWO-ARG-/=" "TWO-ARG-<"
              "TWO-ARG-<=" "TWO-ARG-="
@@ -1180,7 +1208,9 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "UNKNOWN-KEY-ARGUMENT-ERROR"
              "UNKNOWN-TYPE" "UNKNOWN-TYPE-P"
              "UNKNOWN-TYPE-SPECIFIER" "UNSEEN-THROW-TAG-ERROR"
-             "UNSIGNED-BYTE-32-P" "VALUES-SPECIFIER-TYPE"
+             "UNSIGNED-BYTE-32-P"
+            "VALUE-CELL-REF" "VALUE-CELL-SET"
+            "VALUES-SPECIFIER-TYPE"
              "VALUES-SPECIFIER-TYPE-CACHE-CLEAR" "VALUES-SUBTYPEP"
              "VALUES-TYPE"
              "VALUES-TYPE-INTERSECTION" "VALUES-TYPE-KEYP"
@@ -1191,6 +1221,7 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "VECTOR-TO-VECTOR*" "VECTOR-TO-SIMPLE-STRING*"
              "VECTOR-TO-BIT-VECTOR*" "VECTOR-TO-SIMPLE-BIT-VECTOR*"
              "VECTOR-OF-CHECKED-LENGTH-GIVEN-LENGTH"
+             "WITH-ARRAY-DATA"
              "WITH-CIRCULARITY-DETECTION" "WITH-TYPE-CACHES"
              "WRONG-NUMBER-OF-INDICES-ERROR"
 
@@ -1207,9 +1238,7 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "INVOKE-MACROEXPAND-HOOK"
              "DEFAULT-STRUCTURE-PRINT"
              "LAYOUT" "LAYOUT-LENGTH"
-             "LAMBDA-WITH-ENVIRONMENT" "LAYOUT-PURE" "DSD-RAW-TYPE"
-             "%COMPILER-DEFSTRUCT"
-             "%COMPILER-ONLY-DEFSTRUCT" "FUNCTION-%COMPILER-ONLY-DEFSTRUCT"
+             "LAYOUT-PURE" "DSD-RAW-TYPE"
              "DEFSTRUCT-DESCRIPTION" "UNDEFINE-STRUCTURE"
              "DD-COPIER" "UNDEFINE-FUNCTION-NAME" "DD-TYPE"
              "CLASS-STATE" "INSTANCE"
@@ -1219,12 +1248,12 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "CLASS-LAYOUT" "CLASS-%NAME"
              "DD-RAW-LENGTH" "NOTE-NAME-DEFINED"
              "%CODE-CODE-SIZE" "DD-SLOTS"
-             "%IMAGPART" "DSD-ACCESSOR"
+             "%IMAGPART" "DSD-ACCESSOR-NAME"
              "%CODE-DEBUG-INFO" "DSD-%NAME"
              "LAYOUT-CLASS" "LAYOUT-INVALID"
              "%FUNCTION-NAME" "DSD-TYPE" "%INSTANCEP"
              "DEFSTRUCT-SLOT-DESCRIPTION" "%FUNCTION-ARGLIST"
-             "%FUNCTION-NEXT" "LAYOUT-CLOS-HASH-LENGTH" "DD-PREDICATE"
+             "%FUNCTION-NEXT" "LAYOUT-CLOS-HASH-LENGTH" "DD-PREDICATE-NAME"
              "CLASS-PROPER-NAME" "%NOTE-TYPE-DEFINED" "LAYOUT-INFO"
              "%SET-INSTANCE-LAYOUT" "DD-DEFAULT-CONSTRUCTOR"
              "LAYOUT-OF" "%FUNCTION-SELF" "%REALPART"
@@ -1232,7 +1261,7 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "%INSTANCE-LAYOUT" "LAYOUT-CLOS-HASH"
              "%FUNCTION-TYPE" "PROCLAIM-AS-FUNCTION-NAME"
              "BECOME-DEFINED-FUNCTION-NAME"
-             "%%COMPILER-DEFSTRUCT" "%NUMERATOR" "CLASS-TYPEP"
+             "%NUMERATOR" "CLASS-TYPEP"
              "STRUCTURE-CLASS-PRINT-FUNCTION" "DSD-READ-ONLY"
              "LAYOUT-INHERITS" "DD-LENGTH" "%CODE-ENTRY-POINTS"
              "%DENOMINATOR"
@@ -1243,7 +1272,7 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "%RANDOM-DOUBLE-FLOAT" "%RANDOM-LONG-FLOAT"
              "%RANDOM-SINGLE-FLOAT"
              "RANDOM-PCL-CLASS" "BASIC-STRUCTURE-CLASS-PRINT-FUNCTION"
-             "%FUNCALLABLE-INSTANCE-INFO" "*EVAL-STACK*" "RANDOM-CHUNK"
+             "%FUNCALLABLE-INSTANCE-INFO" "RANDOM-CHUNK"
              "MAKE-FUNCALLABLE-STRUCTURE-CLASS" "LAYOUT-CLOS-HASH-MAX"
              "CLASS-CELL-NAME" "BUILT-IN-CLASS-DIRECT-SUPERCLASSES"
              "INITIALIZE-BYTE-COMPILED-FUNCTION"
@@ -1262,7 +1291,8 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "MAKE-UNDEFINED-CLASS" "CLASS-DIRECT-SUPERCLASSES" "MAKE-LAYOUT"
              "BYTE-FUNCTION-TYPE"
              "REDEFINE-LAYOUT-WARNING" "SLOT-CLASS"
-             "INSURED-FIND-CLASS"
+             "INSURED-FIND-CLASS" "ORDER-LAYOUT-INHERITS"
+             "STD-COMPUTE-CLASS-PRECEDENCE-LIST"
 
              ;; symbols from former SB!CONDITIONS
              "*HANDLER-CLUSTERS*" "*RESTART-CLUSTERS*"
@@ -1281,7 +1311,7 @@ is a good idea, but see SB-SYS for blurring of boundaries."
              "!PACKAGE-COLD-INIT" "SIGNAL-COLD-INIT-OR-REINIT"
              "!POLICY-COLD-INIT-OR-RESANIFY" "!VM-TYPE-COLD-INIT"
              "!BACKQ-COLD-INIT" "!SHARPM-COLD-INIT"
-             "!CLASS-FINALIZE" "GC-COLD-INIT-OR-REINIT"
+             "!CLASS-FINALIZE" "GC-REINIT"
 
              ;; Note: These are out of lexicographical order because in CMU CL
              ;; they were defined as internal symbols in package "CL"
@@ -1441,7 +1471,9 @@ definitely not guaranteed to be present in later versions of SBCL."
 necessary for system interfacing\" (said cmu-user.tex at the time
 of the SBCL code fork). That probably was and is a good idea, but in
 practice, the distinctions between this package and SB-KERNEL
-and even SB-VM seem to have become somewhat blurred over the years."
+and even SB-VM seem to have become somewhat blurred over the years.
+Some anomalies (e.g. FIND-IF-IN-CLOSURE being in SB-SYS instead of
+SB-KERNEL) have been undone, but probably more remain."
     :use ("CL" "SB!EXT" "SB!INT")
     :export ("%ASSEMBLER-CODE-TYPE" "%BIND-ALIGNED-SAP"
              ;; FIXME: %PRIMITIVE shouldn't be here. (I now know that %SYS
@@ -1465,7 +1497,7 @@ and even SB-VM seem to have become somewhat blurred over the years."
              "DO-DO-BODY" "DOUBLE-FLOAT-RADIX"
              "ENABLE-INTERRUPT" "ENUMERATION"
              "FD-STREAM" "FD-STREAM-FD"
-             "FD-STREAM-P" "FIND-IF-IN-CLOSURE"
+             "FD-STREAM-P" 
              "FOREIGN-SYMBOL-ADDRESS" "FOREIGN-SYMBOL-ADDRESS-AS-INTEGER"
              "GET-PAGE-SIZE" "GET-SYSTEM-INFO"
              "IGNORE-INTERRUPT"
@@ -1475,7 +1507,7 @@ and even SB-VM seem to have become somewhat blurred over the years."
              "OBJECT-SET-OPERATION"
              "OS-COLD-INIT-OR-REINIT" "OS-CONTEXT-T" "OUTPUT-RAW-BYTES"
              "PARSE-BODY" "POINTER"
-             "POINTER<" "POINTER>" "PORT" "POSITIVE-PRIMEP" 
+             "POINTER<" "POINTER>" "PORT" 
              "READ-N-BYTES" "REALLOCATE-SYSTEM-MEMORY" "RECORD-SIZE"
              "REMOVE-FD-HANDLER" "REMOVE-PORT-DEATH-HANDLER"
              "REMOVE-PORT-OBJECT"
@@ -1547,7 +1579,7 @@ no guarantees of interface stability."
              "UNIX-EXECVE" "UNIX-EXIT" "UNIX-FCHMOD" "UNIX-FCHOWN"
              "UNIX-FCNTL" "UNIX-FD" "UNIX-FILE-MODE" "UNIX-FORK" "UNIX-FSTAT"
              "UNIX-FSYNC" "UNIX-FTRUNCATE" "UNIX-GETDTABLESIZE" "UNIX-GETEGID"
-             "UNIX-GETGID" "UNIX-GETHOSTID" "UNIX-GETHOSTNAME"
+             "UNIX-GETGID" "UNIX-GETHOSTNAME"
              "UNIX-GETPAGESIZE"  "UNIX-GETPEERNAME" "UNIX-GETPGRP"
              "UNIX-GETPID" "UNIX-GETPPID" "UNIX-GETRUSAGE"
              "UNIX-GETSOCKNAME" "UNIX-GETTIMEOFDAY" "UNIX-GETUID" "UNIX-GID"
@@ -1562,10 +1594,10 @@ no guarantees of interface stability."
              "WS-YPIXEL" "W_OK" "X_OK" "SIGSYS" "TCSETPGRP" "FD-ZERO"
              "SIGQUIT" "SIGCHLD" "SIGSEGV" "FD-CLR" "SIGUSR2"
              "EALREADY" "SIGPIPE" "CHECK" "SIGXCPU" "EOPNOTSUPP"
-             "SIGFPE" "SIGHUP" "ENOTSOCK" "SIGMASK" "EINTR"
+             "SIGFPE" "SIGHUP" "ENOTSOCK" "EINTR"
              "SIGCONT" "UNIX-RESOLVE-LINKS" "SIGKILL" "EMSGSIZE" "ERANGE"
              "EPROTOTYPE" "UNIX-SIGNAL-NUMBER" "EPFNOSUPPORT" "SIGILL"
-             "EDOM" "UNIX-SIGPAUSE" "EDQUOT" "FD-SETSIZE" "SIGTSTP"
+             "EDOM" "EDQUOT" "FD-SETSIZE" "SIGTSTP"
              "EAFNOSUPPORT" "TCGETPGRP" "EMFILE" "ECONNRESET"
              "EADDRNOTAVAIL" "SIGALRM" "ENETDOWN" "EVICEOP"
              "UNIX-FAST-GETRUSAGE" "EPERM" "SIGINT" "EXDEV" "EDEADLK"
@@ -1573,14 +1605,14 @@ no guarantees of interface stability."
              "EUSERS" "SIGVTALRM" "ENOTCONN" "ESUCCESS" "EPIPE"
              "UNIX-SIMPLIFY-PATHNAME" "EISCONN" "FD-ISSET"
              "ESHUTDOWN" "EBUSY" "SIGTERM" "ENAMETOOLONG" "EMLINK"
-             "EADDRINUSE" "SIGBUS" "ERESTART" "TTY-PROCESS-GROUP"
+             "EADDRINUSE" "SIGBUS" "ERESTART" 
              "UNIX-SIGNAL-NAME" "ETIMEDOUT" "ECHILD" "EFBIG" "SIGTRAP"
              "UNIX-KILLPG" "ENOTBLK" "SIGIOT" "SIGUSR1" "ECONNABORTED"
              "EHOSTUNREACH" "EBADF" "EINVAL" "FD-SET" "EISDIR"
              "SIGTTIN" "UNIX-KILL" "EHOSTDOWN" "E2BIG" "ESPIPE"
              "UNIX-FAST-SELECT" "ENXIO" "ENOTTY" "ELOOP" "LTCHARS"
              "SIGXFSZ" "EINPROGRESS" "ENOENT"
-             "EPROTONOSUPPORT" "UNIX-SIGBLOCK" "SIGIO" "ENOMEM" "SIGEMT"
+             "EPROTONOSUPPORT" "SIGIO" "ENOMEM" "SIGEMT"
              "EFAULT" "ENODEV" "EIO" "EVICEERR" "ETXTBSY" "EWOULDBLOCK"
              "EAGAIN" "EDESTADDRREQ" "ENOEXEC" "ENETUNREACH" "ENOTEMPTY"
              "ENFILE"