;;;; 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
+;;;; * any SHADOWing and nickname hackery
;;;; * 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.
+;;;; cross-compilation, in order to avoid collision with possible
+;;;; corresponding SB-FOO packages in the cross-compilation host.
+;;;; They're renamed to SB-FOO later, after we've departed from the xc
+;;;; mothership and the danger of namespace collision is past.
;;;; This software is part of the SBCL system. See the README file for
;;;; more information.
(#s(sb-cold:package-data
:name "SB!ALIEN"
- :doc "public: the ALIEN foreign function interface"
+ :doc "public: the ALIEN foreign function interface (If you're
+porting CMU CL code, note that this package corresponds roughly to a union
+of the packages ALIEN and C-CALL at the time of the SBCL fork. SB-C-CALL
+is a deprecated nickname to help ease the transition from older versions
+of SBCL which maintained the CMU-CL-style split into two packages.)"
:use ("CL" "SB!EXT" "SB!INT" "SB!SYS" "SB!ALIEN-INTERNALS")
- :reexport ("ARRAY" "BOOLEAN" "DOUBLE-FLOAT" "LONG-FLOAT" "FUNCTION"
- "INTEGER" "SINGLE-FLOAT" "UNION" "SYSTEM-AREA-POINTER"
- "VALUES" "*")
+ :reexport ("ARRAY" "BOOLEAN" "CHAR" "DOUBLE-FLOAT"
+ "FLOAT" "FUNCTION" "INTEGER" "LONG-FLOAT"
+ "SINGLE-FLOAT"
+ ;; FIXME: Do we really want to reexport
+ ;; SYSTEM-AREA-POINTER here? Why?
+ "SYSTEM-AREA-POINTER"
+ "UNION" "VALUES" "*")
:export ("ADDR" "ALIEN" "ALIEN-FUNCALL" "ALIEN-SAP" "ALIEN-SIZE"
- "CAST"
+ "CAST" "C-STRING"
"DEFINE-ALIEN-ROUTINE" "DEFINE-ALIEN-TYPE" "DEFINE-ALIEN-VARIABLE"
;; FIXME: These old names don't match the DEFFOO - vs. -
;; DEFINE-FOO convention used in the ANSI spec, and so
- ;; were deprecated in sbcl-0.pre7, ca. 2001-12-12. After
- ;; a year or so they can go away completely.
+ ;; were deprecated in sbcl-0.7.0. After a year or so
+ ;; they can go away completely.
"DEF-ALIEN-ROUTINE" "DEF-ALIEN-TYPE" "DEF-ALIEN-VARIABLE"
- "DEREF"
+ "DEREF" "DOUBLE"
"ENUM" "EXTERN-ALIEN"
- "FREE-ALIEN"
- "LOAD-FOREIGN" "LOAD-1-FOREIGN"
+ "FREE-ALIEN"
+ "GET-ERRNO"
+ "INT"
+ "LOAD-FOREIGN" "LOAD-1-FOREIGN" "LONG"
"MAKE-ALIEN"
"NULL-ALIEN"
- "SAP-ALIEN" "SIGNED" "SLOT" "STRUCT"
+ "SAP-ALIEN" "SHORT" "SIGNED" "SLOT" "STRUCT"
"UNSIGNED"
+ "UNSIGNED-CHAR" "UNSIGNED-INT" "UNSIGNED-LONG" "UNSIGNED-SHORT"
+ "VOID"
"WITH-ALIEN"))
#s(sb-cold:package-data
"ALLOC-ALIEN-STACK-SPACE" "ALLOC-NUMBER-STACK-SPACE"
"ALLOCATE-CODE-OBJECT" "ALLOCATE-FRAME"
"ALLOCATE-DYNAMIC-CODE-OBJECT" "ALLOCATE-FULL-CALL-FRAME"
- "ANY" "ARGUMENT-COUNT-ERROR" "ASSEMBLE-FILE"
+ "ANY" "ARG-COUNT-ERROR" "ASSEMBLE-FILE"
"ATTRIBUTES" "ATTRIBUTES-INTERSECTION" "ATTRIBUTES-UNION"
"ATTRIBUTES=" "BIND"
"CALL" "CALL-LOCAL" "CALL-NAMED" "CALL-OUT" "CALL-VARIABLE"
"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"
- "VERIFY-ARGUMENT-COUNT" "WRITE-PACKED-BIT-VECTOR"
+ "VERIFY-ARG-COUNT" "WRITE-PACKED-BIT-VECTOR"
"WRITE-VAR-INTEGER" "WRITE-VAR-STRING" "XEP-ALLOCATE-FRAME"
"LABEL-ID" "FIXUP" "FIXUP-FLAVOR" "FIXUP-NAME" "FIXUP-OFFSET"
"FIXUP-P" "MAKE-FIXUP"
"VM-SUPPORT-ROUTINES-PRIMITIVE-TYPE-OF"
"VM-SUPPORT-ROUTINES-PRIMITIVE-TYPE"
"VM-SUPPORT-ROUTINES-MAKE-CALL-OUT-TNS"
- "VM-SUPPORT-ROUTINES-STANDARD-ARGUMENT-LOCATION"
+ "VM-SUPPORT-ROUTINES-STANDARD-ARG-LOCATION"
"VM-SUPPORT-ROUTINES-MAKE-RETURN-PC-PASSING-LOCATION"
"VM-SUPPORT-ROUTINES-MAKE-OLD-FP-PASSING-LOCATION"
"VM-SUPPORT-ROUTINES-MAKE-OLD-FP-SAVE-LOCATION"
"VM-SUPPORT-ROUTINES-MAKE-RETURN-PC-SAVE-LOCATION"
- "VM-SUPPORT-ROUTINES-MAKE-ARGUMENT-COUNT-LOCATION"
+ "VM-SUPPORT-ROUTINES-MAKE-ARG-COUNT-LOCATION"
"VM-SUPPORT-ROUTINES-MAKE-NFP-TN"
"VM-SUPPORT-ROUTINES-MAKE-STACK-POINTER-TN"
"VM-SUPPORT-ROUTINES-MAKE-NUMBER-STACK-POINTER-TN"
"VM-SUPPORT-ROUTINES-SELECT-COMPONENT-FORMAT"
"VM-SUPPORT-ROUTINES-MAKE-NLX-SP-TN"
"VM-SUPPORT-ROUTINES-MAKE-DYNAMIC-STATE-TNS"
- "VM-SUPPORT-ROUTINES-MAKE-NLX-ENTRY-ARGUMENT-START-LOCATION"
+ "VM-SUPPORT-ROUTINES-MAKE-NLX-ENTRY-ARG-START-LOCATION"
"VM-SUPPORT-ROUTINES-GENERATE-CALL-SEQUENCE"
"VM-SUPPORT-ROUTINES-GENERATE-RETURN-SEQUENCE"
"VM-SUPPORT-ROUTINES-EMIT-NOP"
"VM-SUPPORT-ROUTINES-LOCATION-NUMBER"))
#s(sb-cold:package-data
- :name "SB!C-CALL"
- ;; FIXME: Why not just put this stuff into SB-ALIEN? Or maybe
- ;; just glom this and SB-ALIEN together into SB-FFI?
- :doc "public: some types used with ALIENs"
- :use ("CL" "SB!SYS" "SB!ALIEN-INTERNALS" "SB!ALIEN" "SB!INT" "SB!EXT")
- :reexport ("FLOAT" "CHAR")
- :export ("C-STRING" "DOUBLE" "GET-ERRNO" "INT" "LONG"
- "SHORT" "UNSIGNED-CHAR" "UNSIGNED-INT"
- "UNSIGNED-LONG" "UNSIGNED-SHORT" "VOID"))
-
- #s(sb-cold:package-data
:name "SB!DEBUG"
:doc
"sorta public: Eventually this should become the debugger interface, with
"SET-ADDRESS-PRINTING-RANGE" "SET-DISASSEM-PARAMS"
"SET-DSTATE-SEGMENT" "SIGN-EXTEND" "SPECIALIZE"
"GEN-PRINTER-DEF-FORMS-DEF-FORM" "MAKE-DSTATE"
- "DEFINE-ARGUMENT-TYPE" "GEN-ARG-TYPE-DEF-FORM"
+ "DEFINE-ARG-TYPE" "GEN-ARG-TYPE-DEF-FORM"
"READ-SIGNED-SUFFIX" "ADD-OFFS-HOOK"
"MAKE-MEMORY-SEGMENT" "GEN-PREAMBLE-FORM"
"MAKE-SEGMENT" "SEGMENT-OVERFLOW"
#s(sb-cold:package-data
:name "SB!FASL"
:doc "private: stuff related to FASL load/dump logic (and GENESIS)"
- :use ("CL" "SB!ALIEN" "SB!ASSEM" "SB!BIGNUM" "SB!C" "SB!C-CALL"
+ :use ("CL" "SB!ALIEN" "SB!ASSEM" "SB!BIGNUM" "SB!C"
"SB!EXT" "SB!INT" "SB!KERNEL" "SB!SYS")
:export ("*ASSEMBLER-ROUTINES*"
"+BACKEND-FASL-FILE-IMPLEMENTATION+"
#s(sb-cold:package-data
:name "SB!IMPL"
:doc "private: a grab bag of implementation details"
- :use ("CL" "SB!ALIEN" "SB!BIGNUM" "SB!C-CALL" "SB!DEBUG" "SB!EXT"
+ :use ("CL" "SB!ALIEN" "SB!BIGNUM" "SB!DEBUG" "SB!EXT"
"SB!FASL" "SB!GRAY" "SB!INT" "SB!KERNEL" "SB!SYS"))
#s(sb-cold:package-data
: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" "SB!GRAY")
- :reexport ("LOAD-FOREIGN" "LOAD-1-FOREIGN")
+ :use ("CL" "SB!ALIEN" "SB!INT" "SB!SYS" "SB!GRAY")
:export (;; Information about how the program was invoked is
;; nonstandard but very useful.
"*POSIX-ARGV*" "POSIX-GETENV" "POSIX-ENVIRON"
"private: miscellaneous unsupported extensions to the ANSI spec. Much 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!GRAY" "SB!FASL" "SB!SYS")
+ :use ("CL" "SB!ALIEN" "SB!GRAY" "SB!FASL" "SB!SYS")
:export ("*AFTER-SAVE-INITIALIZATIONS*" "*BEFORE-SAVE-INITIALIZATIONS*"
;; lambda list keyword extensions
"DEFPRINTER"
"AVER" "ENFORCE-TYPE"
+ ;; ..and CONDITIONs..
+ "BUG"
+ "UNSUPPORTED-OPERATOR"
+
;; ..and DEFTYPEs..
"INDEX"
"RATIOP"
;; encapsulation
- "ARGUMENT-LIST"
+ "ARG-LIST"
"BASIC-DEFINITION"
"ENCAPSULATE" "ENCAPSULATED-P"
"UNENCAPSULATE"
;; certainly doesn't belong in public extensions
;; FIXME: maybe belongs in %KERNEL with other typesystem stuff?
- "CONSTANT-ARGUMENT"
+ "CONSTANT-ARG"
;; various internal defaults
- "*DEFAULT-PACKAGE-USE-LIST*"
"DEFAULT-INIT-CHAR" "*DEFAULT-INIT-CHAR-FORM*"
"*LOAD-SOURCE-DEFAULT-TYPE*"
;; 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.)
+ ;; doesn't actually use the type system stuff.) And maybe other
+ ;; possible splits too:
+ ;; * Pull GC stuff (*GC-INHIBIT*, *NEED-TO-COLLECT-GARBAGE*, etc.)
+ ;; out into SB-GC.
+ ;; * Pull special case implementations of sequence functions (e.g.
+ ;; %MAP-TO-LIST-ARITY-1 and %FIND-POSITION-IF-NOT) and
+ ;; other sequence function implementation grot into SB-SEQ.
+ ;; * Pull all the math stuff (%ACOS, %COSH, 32BIT-LOGICAL-AND...)
+ ;; into SB-MATH.
+ ;; * Pull all the array stuff (%ARRAY-DATA-VECTOR, %RAW-REF-LONG,
+ ;; WITH-ARRAY-DATA, ALLOCATE-VECTOR, HAIRY-DATA-VECTOR-REF...)
+ ;; into SB-ARRAY.
+ ;; * Pull all the streams stuff out into SB-STREAM.
+ ;; * Pull all the OBJECT-NOT-FOO symbols out. Maybe we could even
+ ;; figure out a way to stop exporting them? Failing that,
+ ;; they could be in SB-INTERR.
#s(sb-cold:package-data
:name "SB!KERNEL"
:doc
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"))
- :reexport ("DEF!STRUCT" "DEF!MACRO" "VOID" "WEAK-POINTER-P")
+ :reexport ("DEF!STRUCT" "DEF!MACRO")
:export ("%ACOS" "%ACOSH" "%ARRAY-AVAILABLE-ELEMENTS"
"%ARRAY-DATA-VECTOR" "%ARRAY-DIMENSION"
"%ARRAY-DISPLACED-P"
"%DOUBLE-FLOAT" "%DPB" "%EXP" "%EXPM1"
"%FIND-POSITION" "%FIND-POSITION-VECTOR-MACRO"
"%FIND-POSITION-IF" "%FIND-POSITION-IF-VECTOR-MACRO"
+ "%FIND-POSITION-IF-NOT" "%FIND-POSITION-IF-NOT-VECTOR-MACRO"
"%FUN-DOC" "%FUN-NAME"
"%HYPOT" "%LDB"
"%LOG" "%LOGB" "%LOG10" "%LOG1P" "%LONG-FLOAT"
"%SET-SIGNED-SAP-REF-16" "%SET-SIGNED-SAP-REF-32"
"%SET-SIGNED-SAP-REF-64" "%SET-SIGNED-SAP-REF-8"
"%SET-STACK-REF" "%SIN" "%SIN-QUICK"
- "%SINGLE-FLOAT" "%SINH" "%SP-SET-DEFINITION"
- "%SP-SET-PLIST"
+ "%SINGLE-FLOAT" "%SINH"
"%SQRT" "%SXHASH-SIMPLE-STRING"
"%SXHASH-SIMPLE-SUBSTRING" "%TAN" "%TAN-QUICK"
"%TANH" "%UNARY-ROUND" "%UNARY-TRUNCATE"
"%WITH-ARRAY-DATA" "%WITH-ARRAY-DATA-MACRO"
"*ALREADY-MAYBE-GCING*"
- "*CURRENT-LEVEL*" "*EMPTY-TYPE*"
- "*EVAL-STACK*" "*EVAL-STACK-TOP*" "*GC-INHIBIT*"
+ "*CURRENT-LEVEL-IN-PRINT*" "*EMPTY-TYPE*"
+ "*GC-INHIBIT*"
"*NEED-TO-COLLECT-GARBAGE*"
"*PRETTY-PRINTER*" "*UNIVERSAL-TYPE*"
"*UNIVERSAL-FUN-TYPE*"
"BIT-BASH-NOT"
"BIT-BASH-ORC1" "BIT-BASH-ORC2" "BIT-BASH-SET"
"BIT-BASH-XOR"
- "BIT-INDEX" "BOGUS-ARGUMENT-TO-VALUES-LIST-ERROR"
+ "BIT-INDEX" "BOGUS-ARG-TO-VALUES-LIST-ERROR"
"BOOLE-CODE"
"BYTE-SPECIFIER"
"%BYTE-BLT"
"INTERNAL-ERROR" "INTERNAL-TIME"
"INTERSECTION-TYPE" "INTERSECTION-TYPE-P"
"INTERSECTION-TYPE-TYPES"
- "INVALID-ARGUMENT-COUNT-ERROR" "INVALID-ARRAY-INDEX-ERROR"
+ "INVALID-ARG-COUNT-ERROR" "INVALID-ARRAY-INDEX-ERROR"
"INVALID-UNWIND-ERROR" "IRRATIONAL"
"JUST-DUMP-IT-NORMALLY"
"KEY-INFO" "KEY-INFO-NAME"
"OBJECT-NOT-TYPE-ERROR"
"OBJECT-NOT-UNSIGNED-BYTE-32-ERROR"
"OBJECT-NOT-VECTOR-ERROR" "OBJECT-NOT-WEAK-POINTER-ERROR"
- "ODD-KEY-ARGUMENTS-ERROR"
+ "ODD-KEY-ARGS-ERROR"
"OUTPUT-OBJECT" "OUTPUT-UGLY-OBJECT"
"PACKAGE-DOC-STRING"
"PACKAGE-HASHTABLE-SIZE" "PACKAGE-HASHTABLE-FREE"
"UNBOUND-SYMBOL-ERROR" "UNBOXED-ARRAY"
"UNDEFINED-SYMBOL-ERROR" "UNION-TYPE" "UNION-TYPE-P"
"UNION-TYPE-TYPES" "UNKNOWN-ERROR"
- "UNKNOWN-KEY-ARGUMENT-ERROR"
+ "UNKNOWN-KEY-ARG-ERROR"
"UNKNOWN-TYPE" "UNKNOWN-TYPE-P"
"UNKNOWN-TYPE-SPECIFIER" "UNSEEN-THROW-TAG-ERROR"
"UNSIGNED-BYTE-32-P"
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!EXT" "SB!INT" "SB!SYS")
+ :use ("CL" "SB!ALIEN" "SB!EXT" "SB!INT" "SB!SYS")
:export (;; wrappers around Unix stuff to give just what Lisp needs
"UID-USERNAME"
"internal: the default place to hide information about the hardware and data
structure representations"
:use ("CL" "SB!ALIEN" "SB!ALIEN-INTERNALS" "SB!ASSEM" "SB!C"
- "SB!C-CALL" "SB!EXT" "SB!FASL" "SB!INT" "SB!KERNEL"
- "SB!SYS" "SB!UNIX")
+ "SB!EXT" "SB!FASL" "SB!INT" "SB!KERNEL" "SB!SYS" "SB!UNIX")
:export ("*ASSEMBLY-UNIT-LENGTH*" "*PRIMITIVE-OBJECTS*"
"AFTER-BREAKPOINT-TRAP"
"ANY-REG-SC-NUMBER" "ARRAY-DATA-SLOT" "ARRAY-DIMENSIONS-OFFSET"
"IMMEDIATE-SC-NUMBER" "*INITIAL-DYNAMIC-SPACE-FREE-POINTER*"
"INSTANCE-HEADER-WIDETAG" "INSTANCE-POINTER-LOWTAG"
"INSTANCE-SLOTS-OFFSET" "INSTANCE-USAGE"
- "INTERIOR-REG-SC-NUMBER" "INTERNAL-ERROR-ARGUMENTS"
+ "INTERIOR-REG-SC-NUMBER" "INTERNAL-ERROR-ARGS"
"INTERRUPTED-FLAG" "LIST-ALLOCATED-OBJECTS" "LIST-POINTER-LOWTAG"
"LONG-FLOAT-BIAS" "LONG-FLOAT-DIGITS" "LONG-FLOAT-EXPONENT-BYTE"
"LONG-FLOAT-HIDDEN-BIT" "LONG-FLOAT-NORMAL-EXPONENT-MAX"