:doc "private: stuff for implementing ALIENs and friends"
:use ("CL")
:export ("%CAST" "%DEREF-ADDR" "%HEAP-ALIEN" "%HEAP-ALIEN-ADDR"
+
"%LOCAL-ALIEN-ADDR" "%LOCAL-ALIEN-FORCED-TO-MEMORY-P" "%SAP-ALIEN"
"%SET-DEREF" "%SET-HEAP-ALIEN" "%SET-LOCAL-ALIEN" "%SET-SLOT"
"%SLOT-ADDR" "*VALUES-TYPE-OKAY*" "ALIEN-ARRAY-TYPE"
"*BACKEND-T-PRIMITIVE-TYPE*"
"*CODE-SEGMENT*"
- "*COMPILING-FOR-INTERPRETER*" "*CONVERTING-FOR-INTERPRETER*"
+ "*CONVERTING-FOR-INTERPRETER*"
"*COUNT-VOP-USAGES*" "*ELSEWHERE*"
"*FASL-HEADER-STRING-START-STRING*"
"*FASL-HEADER-STRING-STOP-CHAR-CODE*"
"DEALLOC-NUMBER-STACK-SPACE" "DEF-BOOLEAN-ATTRIBUTE"
"DEF-IR1-TRANSLATOR" "DEF-PRIMITIVE-TRANSLATOR"
"DEF-PRIMITIVE-TYPE" "DEF-PRIMITIVE-TYPE-ALIAS"
- "DEF-SOURCE-TRANSFORM" "DEF-VM-SUPPORT-ROUTINE"
+ "DEF-SOURCE-TRANSFORM" "!DEF-VM-SUPPORT-ROUTINE"
"DEFINE-ASSEMBLY-ROUTINE" "DEFINE-MOVE-FUNCTION"
"DEFINE-MOVE-VOP" "DEFINE-STORAGE-BASE"
"DEFINE-STORAGE-CLASS" "DEFINE-VOP"
"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" "META-PRIMITIVE-TYPE-OR-LOSE"
+ "MAKE-VALUE-CELL" "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"
"BLOCK-NUMBER"
"BACKEND"
"BACKEND-BYTE-FASL-FILE-IMPLEMENTATION"
- "BACKEND-BYTE-FASL-FILE-TYPE"
"IR2-BLOCK-BLOCK"
"DISASSEM-BYTE-COMPONENT"
"FUNCALLABLE-INSTANCE-LEXENV"
#s(sb-cold:package-data
:name "SB!IMPL"
:doc "private: a grab bag of implementation details"
- :use ("CL" "SB!EXT" "SB!INT" "SB!SYS" "SB!DEBUG" "SB!KERNEL" "SB!BIGNUM"))
+ :use ("CL" "SB!ALIEN" "SB!BIGNUM" "SB!C-CALL" "SB!DEBUG" "SB!EXT"
+ "SB!GRAY" "SB!INT" "SB!KERNEL" "SB!SYS"))
;; FIXME: It seems to me that this could go away, with its contents moved
;; into SB!KERNEL, like the implementation of the rest of the class system.
- #s(sb-cold:package-data
- :name "SB!CONDITIONS"
- :doc "private: the implementation of the condition system"
- :use ("CL" "SB!EXT" "SB!INT" "SB!KERNEL"))
+;; #s(sb-cold:package-data
+;; :name "SB!CONDITIONS"
+;; :doc "private: the implementation of the condition system"
+;; :use ("CL" "SB!EXT" "SB!INT" "SB!KERNEL"))
#s(sb-cold:package-data
:name "SB!DEBUG"
like *STACK-TOP-HINT*"
:use ("CL" "SB!EXT" "SB!INT" "SB!SYS")
:export ("*AUTO-EVAL-IN-FRAME*" "*DEBUG-CONDITION*"
- "*DEBUG-PRINT-LENGTH*" "*DEBUG-PRINT-LEVEL*" "*DEBUG-READTABLE*"
- "*DEBUG-PROMPT*" "*DEBUG-HELP-STRING*" "*FLUSH-DEBUG-ERRORS*"
- "*IN-THE-DEBUGGER*"
+ "*DEBUG-PRINT-LENGTH*" "*DEBUG-PRINT-LEVEL*"
+ "*DEBUG-READTABLE*" "*DEBUG-HELP-STRING*"
+ "*FLUSH-DEBUG-ERRORS*" "*IN-THE-DEBUGGER*"
"*TRACE-INDENTATION-STEP*" "*MAX-TRACE-INDENTATION*"
"*TRACE-FRAME*" "*TRACE-PRINT-LENGTH*"
"*TRACE-PRINT-LEVEL*" "*TRACED-FUNCTION-LIST*"
:name "SB!EXT"
:doc "public: miscellaneous supported extensions to the ANSI Lisp spec"
;; FIXME: Why don't we just USE-PACKAGE %KERNEL here instead of importing?
- :use ("CL" "SB!ALIEN" "SB!C-CALL" "SB!INT" "SB!SYS")
+ :use ("CL" "SB!ALIEN" "SB!C-CALL" "SB!INT" "SB!SYS" "SB!GRAY")
;; FIXME: If we advertise these as extensions, they should be in the
;; SB!EXT package (and perhaps re-exported from the %KERNEL
;; package) rather than in some other package and reexported from
:reexport ("LOAD-FOREIGN" "LOAD-1-FOREIGN" "WEAK-POINTER-P")
:export (;; Information about how the program was invoked is
;; nonstandard but very useful.
- "*POSIX-ARGV*" "POSIX-GETENV"
+ "*POSIX-ARGV*" "POSIX-GETENV" "POSIX-ENVIRON"
;; People have various good reasons to mess with the GC.
"*AFTER-GC-HOOKS*" "*BEFORE-GC-HOOKS*"
;; now? -- WHN 19991206
;; extended declarations..
- "CONSTANT-FUNCTION" "END-BLOCK" "FREEZE-TYPE"
- "INHIBIT-WARNINGS"
- "MAYBE-INLINE" "OPTIMIZE-INTERFACE" "START-BLOCK"
+ "FREEZE-TYPE" "INHIBIT-WARNINGS"
+ "MAYBE-INLINE" "OPTIMIZE-INTERFACE"
;; ..and variables to control compiler policy
"*INLINE-EXPANSION-LIMIT*"
"private: miscellaneous unsupported extensions to the ANSI spec. Most of
the stuff in here originated in CMU CL's EXTENSIONS package and is
retained, possibly temporariliy, because it might be used internally."
- :use ("CL" "SB!ALIEN" "SB!C-CALL" "SB!SYS")
+ :use ("CL" "SB!ALIEN" "SB!C-CALL" "SB!SYS" "SB!GRAY")
;; FIXME: RATIOP should probably not go through this package but be
;; called directly from SB!KERNEL, unless it's implemented as
;; TYPEP X 'RATIO in which case it doesn't need to be in SB!KERNEL.
;; rid of FDEFINITIONs entirely later.
"*SETF-FDEFINITION-HOOK*"
- ;; useful but non-standard user-level functions..
+ ;; non-standard but widely useful user-level functions..
"ASSQ" "DELQ" "MEMQ"
"%FIND-PACKAGE-OR-LOSE" "FIND-UNDELETED-PACKAGE-OR-LOSE"
"SANE-PACKAGE"
"CIRCULAR-LIST-P"
- ;; ..and macros
+ ;; ..and macros..
"COLLECT"
"DO-ANONYMOUS" "DOHASH" "DOVECTOR"
"ITERATE"
"LETF" "LETF*"
"ONCE-ONLY"
"DEFENUM"
+ "DEFPRINTER"
"DEF!MACRO" "DEF!METHOD" "DEF!STRUCT" "DEF!TYPE"
+ ;; ..and DEFTYPEs..
+ "INDEX"
+
+ ;; ..and type predicates
+ "INSTANCEP"
+ "DOUBLE-FLOATP"
+ "LOGICAL-PATHNAME-P"
+ "LONG-FLOATP"
+ "SHORT-FLOATP"
+ "SINGLE-FLOATP"
+
;; encapsulation
"ARGUMENT-LIST"
"BASIC-DEFINITION"
"BELL-CHAR-CODE" "ESCAPE-CHAR-CODE" "FORM-FEED-CHAR-CODE"
"RETURN-CHAR-CODE" "RUBOUT-CHAR-CODE" "TAB-CHAR-CODE"
- ;; handy user-level/basically-portable DEFTYPEs
- "INDEX"
-
- ;; nonstandard type predicates
- "INSTANCEP"
- "DOUBLE-FLOATP"
- "LOGICAL-PATHNAME-P"
- "LONG-FLOATP"
- "SHORT-FLOATP"
- "SINGLE-FLOATP"
-
;; symbol-hacking idioms
"CONCAT-PNAMES" "KEYWORDICATE" "SYMBOLICATE"
;; FIXME: Maybe this isn't used any more? And if it is,
;; it probably needs a better name, since SPECIAL things
- ;; are so obnoxious in Common Lisp.
+ ;; are such a nice source of sneaky bugs.
"E"
;; various internal defaults
"*DEFAULT-PACKAGE-USE-LIST*"
"DEFAULT-INIT-CHAR"
- "*LOAD-SOURCE-TYPES*" "*LOAD-OBJECT-TYPES*"
+ "*LOAD-SOURCE-DEFAULT-TYPE*"
;; hash caches
"DEFINE-HASH-CACHE"
;; without supporting them, at least not as publicly
;; accessible things with fixed interfaces.
"DEFAULT-DIRECTORY"
- "FILE-COMMENT"
"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"
+
;; not used any more, I think -- WHN 19991206
#+nil
("SERVE-BUTTON-PRESS"
integration' (said CMU CL architecture.tex) and that probably was and
is a good idea, but see SB-SYS for blurring of boundaries."
:use ("CL" "SB!ALIEN" "SB!ALIEN-INTERNALS" "SB!BIGNUM"
- "SB!EXT" "SB!INT" "SB!SYS")
+ "SB!EXT" "SB!INT" "SB!SYS" "SB!GRAY")
:import-from (("SB!C-CALL" "VOID"))
:reexport ("DEF!STRUCT" "DEF!MACRO" "VOID")
:export ("%ACOS" "%ACOSH" "%ARRAY-AVAILABLE-ELEMENTS"
"BIT-INDEX" "BOGUS-ARGUMENT-TO-VALUES-LIST-ERROR"
"BOOLE-CODE"
"BYTE-SPECIFIER" "CALLABLE" "CASE-BODY-ERROR"
+ "CHARPOS"
"CHECK-FOR-CIRCULARITY" "CHECK-TYPE-ERROR"
+ "CLOSED-FLAME"
"CODE-COMPONENT" "CODE-COMPONENT-P"
"CODE-DEBUG-INFO" "CODE-HEADER-REF" "CODE-HEADER-SET"
"CODE-INSTRUCTIONS" "COERCE-TO-BIT-VECTOR" "COERCE-TO-FUNCTION"
"FLOAT-EXPONENT" "FLOAT-FORMAT-DIGITS" "FLOAT-FORMAT-NAME"
"FLOAT-FORMAT-MAX" "FLOATING-POINT-EXCEPTION"
"FORM" "FUNCALLABLE-INSTANCE-P"
- "FUNCTION-CODE-HEADER" "FUNCTION-TYPE"
+ "FUNCTION-CODE-HEADER" "FUNCTION-DOC"
+ "FUNCTION-TYPE"
"FUNCTION-TYPE-ALLOWP"
"FUNCTION-TYPE-KEYP" "FUNCTION-TYPE-KEYWORDS"
"FUNCTION-TYPE-NARGS" "FUNCTION-TYPE-OPTIONAL"
"HAIRY-DATA-VECTOR-REF" "HAIRY-DATA-VECTOR-SET" "HAIRY-TYPE"
"HAIRY-TYPE-CHECK-TEMPLATE-NAME" "HAIRY-TYPE-SPECIFIER"
"HANDLE-CIRCULARITY" "IGNORE-IT"
+ "ILL-BIN" "ILL-BOUT" "ILL-IN" "ILL-OUT"
"INDEX-TOO-LARGE-ERROR" "INTEGER-DECODE-DOUBLE-FLOAT"
"INTEGER-DECODE-LONG-FLOAT" "INTEGER-DECODE-SINGLE-FLOAT"
"INTERNAL-ERROR" "INTERNAL-TIME"
"KEY-INFO-P" "KEY-INFO-TYPE"
"LAYOUT-DEPTHOID"
"LAYOUT-INVALID-ERROR" "LEXENV"
+ "LINE-LENGTH"
+ "LISP-STREAM"
+ "LISP-STREAM-BIN" "LISP-STREAM-BOUT"
+ "LISP-STREAM-IN" "LISP-STREAM-IN-BUFFER"
+ "LISP-STREAM-IN-INDEX"
+ "LISP-STREAM-MISC" "LISP-STREAM-N-BIN"
+ "LISP-STREAM-OUT" "LISP-STREAM-SOUT"
"LIST-TO-SIMPLE-STRING*" "LIST-TO-BIT-VECTOR*"
"LIST-TO-VECTOR*"
"LONG-FLOAT-EXPONENT" "LONG-FLOAT-EXP-BITS"
"LONG-FLOAT-HIGH-BITS"
"LONG-FLOAT-LOW-BITS" "LONG-FLOAT-MID-BITS" "LONG-FLOAT-P"
+ "LONG-FLOAT-RADIX" "LONG-WORDS"
"LRA" "LRA-CODE-HEADER" "LRA-P"
"MAKE-ALIEN-TYPE-TYPE" "MAKE-ARGS-TYPE"
"MAKE-ARRAY-HEADER" "MAKE-ARRAY-TYPE" "MAKE-CONS-TYPE"
"OBJECT-NOT-VECTOR-ERROR" "OBJECT-NOT-WEAK-POINTER-ERROR"
"ODD-KEYWORD-ARGUMENTS-ERROR"
"OUTPUT-OBJECT" "OUTPUT-UGLY-OBJECT"
+ "PACKAGE-DOC-STRING"
+ "PACKAGE-HASHTABLE-SIZE" "PACKAGE-HASHTABLE-FREE"
+ "PACKAGE-INTERNAL-SYMBOLS" "PACKAGE-EXTERNAL-SYMBOLS"
"PARSE-DEFMACRO" "PARSE-LAMBDA-LIST" "PARSE-UNKNOWN-TYPE"
"PARSE-UNKNOWN-TYPE-SPECIFIER"
- "PATHNAME-DESIGNATOR" "PUNT-IF-TOO-LONG"
+ "PATHNAME-DESIGNATOR" "PUNT-PRINT-IF-TOO-LONG"
"READER-PACKAGE-ERROR"
#!+gengc "*SAVED-STATE-CHAIN*"
"SCALE-DOUBLE-FLOAT" "SCALE-LONG-FLOAT"
"TYPE-DIFFERENCE" "TYPE-EXPAND"
"TYPE-INTERSECT"
"TYPE-INTERSECTION" "TYPE-SPECIFIER"
- "*STANDARD-TYPE-NAMES*" "TYPE-UNION" "TYPE/=" "TYPE="
+ "TYPE-UNION" "TYPE/=" "TYPE="
"TYPES-INTERSECT" "UNBOUND-SYMBOL-ERROR" "UNBOXED-ARRAY"
"UNDEFINED-SYMBOL-ERROR" "UNION-TYPE" "UNION-TYPE-P"
"UNION-TYPE-TYPES" "UNKNOWN-ERROR"
"SIMPLE-CONTROL-ERROR" "SIMPLE-FILE-ERROR"
"SIMPLE-PROGRAM-ERROR" "SIMPLE-STYLE-WARNING" "STYLE-WARN"
- "!COLD-INIT"
+ ;; symbols from former SB!CONDITIONS
+ "*HANDLER-CLUSTERS*" "*RESTART-CLUSTERS*"
+ "SHOW-CONDITION" "CASE-FAILURE"
+ "NAMESTRING-PARSE-ERROR" "NAMESTRING-PARSE-ERROR-OFFSET"
+ "DESCRIBE-CONDITION"
+
+ "!COLD-INIT" "!UNINTERN-INIT-ONLY-STUFF"
"!GLOBALDB-COLD-INIT" "!FDEFN-COLD-INIT"
"!TYPE-CLASS-COLD-INIT" "!TYPEDEFS-COLD-INIT"
"!ALIEN-TYPE-COLD-INIT" "!CLASSES-COLD-INIT"
"!EARLY-TYPE-COLD-INIT" "!LATE-TYPE-COLD-INIT"
"!TARGET-TYPE-COLD-INIT" "!RANDOM-COLD-INIT"
- "!FILESYS-COLD-INIT" "!READER-COLD-INIT"
+ "!READER-COLD-INIT"
"STREAM-COLD-INIT-OR-RESET" "!LOADER-COLD-INIT"
"!PACKAGE-COLD-INIT" "SIGNAL-COLD-INIT-OR-REINIT"
- "!SET-SANE-COOKIE-DEFAULTS" "!VM-TYPE-COLD-INIT"
+ "!POLICY-COLD-INIT-OR-RESANIFY" "!VM-TYPE-COLD-INIT"
"!BACKQ-COLD-INIT" "!SHARPM-COLD-INIT"
"!CLASS-FINALIZE" "GC-COLD-INIT-OR-REINIT"
later versions of SBCL, and the other stuff in here is
definitely not guaranteed to be present in later versions of SBCL."
:use ("CL" "SB!ITERATE" "SB!WALKER")
- :import-from (("SB!KERNEL" "FUNCALLABLE-INSTANCE-P" "SB!INT" "SB!EXT"))
+ :import-from (("SB!KERNEL" "FUNCALLABLE-INSTANCE-P" "FUNCTION-DOC"
+ "PACKAGE-DOC-STRING"
+ "PACKAGE-HASHTABLE-SIZE" "PACKAGE-HASHTABLE-FREE"
+ "PACKAGE-INTERNAL-SYMBOLS" "PACKAGE-EXTERNAL-SYMBOLS"
+ "SB!INT" "SB!EXT"))
:reexport ("ADD-METHOD" "ALLOCATE-INSTANCE"
"COMPUTE-APPLICABLE-METHODS"
"ENSURE-GENERIC-FUNCTION"
"GET-PAGE-SIZE" "GET-SYSTEM-INFO"
"IGNORE-INTERRUPT"
"INT-SAP" "INVALIDATE-DESCRIPTOR" "IO-TIMEOUT"
- "LISP-STREAM" "LONG-FLOAT-RADIX" "LONG-WORDS"
"MACRO" "MAKE-FD-STREAM" "MAKE-OBJECT-SET" "MAP-PORT"
"NATURALIZE-BOOLEAN" "NATURALIZE-INTEGER"
"NULL-TERMINATED-STRING" "OBJECT-SET-OPERATION"
This package only tries to implement what happens to be
needed by the current implementation of SBCL, and makes
no guarantees of interface stability."
- :use ("CL" "SB!ALIEN" "SB!C-CALL" "SB!SYS" "SB!EXT" "SB!INT")
+ :use ("CL" "SB!ALIEN" "SB!C-CALL" "SB!EXT" "SB!INT" "SB!SYS")
:export ("CADDR-T" "D-INO" "D-NAME" "D-NAMLEN" "D-OFF" "D-RECLEN"
"DADDR-T" "DEV-T" "DIRECT" "EXECGRP" "EXECOTH" "EXECOWN" "F-DUPFD"
"F-GETFD" "F-GETFL" "F-GETOWN" "F-SETFD" "F-SETFL" "F-SETOWN"
:doc "internal: a code walker used by PCL"
:use ("CL")
:export ("DEFINE-WALKER-TEMPLATE" "WALK-FORM"
- "*WALK-FORM-EXPAND-MACROS-P*" "NESTED-WALK-FORM"
+ "*WALK-FORM-EXPAND-MACROS-P*"
"VARIABLE-LEXICAL-P" "VARIABLE-SPECIAL-P"
"VARIABLE-GLOBALLY-SPECIAL-P"
"*VARIABLE-DECLARATIONS*" "VARIABLE-DECLARATION"
- "MACROEXPAND-ALL")))
+
+ ;; These were exported from the original PCL version of this
+ ;; package, but aren't used in SBCL.
+ ;;"NESTED-WALK-FORM" "MACROEXPAND-ALL"
+ )))