1 ;;;; We proclaim all the special variables in the COMMON-LISP package
2 ;;;; here, in one go, just to try to make sure we don't miss any.
4 ;;;; This software is part of the SBCL system. See the README file for
7 ;;;; This software is derived from the CMU CL system, which was
8 ;;;; written at Carnegie Mellon University and released into the
9 ;;;; public domain. The software is in the public domain and is
10 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
11 ;;;; files for more information.
13 (in-package "COMMON-LISP")
15 (declaim (special cl
:*
19 cl
:*compile-file-pathname
*
20 cl
:*compile-file-truename
*
25 cl
:*default-pathname-defaults
*
45 cl
:*print-miser-width
*
46 cl
:*print-pprint-dispatch
*
50 cl
:*print-right-margin
*
54 cl
:*read-default-float-format
*
70 (declaim (type t cl
:+ cl
:++ cl
:+++ cl
:- cl
:* cl
:** cl
:***))
72 ;;; generalized booleans
73 (declaim (type t cl
:*compile-print
* cl
:*compile-verbose
*
74 cl
:*load-print
* cl
:*load-verbose
*
75 cl
:*print-array
* cl
:*print-radix
*
76 cl
:*print-circle
* cl
:*print-escape
*
77 cl
:*print-gensym
* cl
:*print-pretty
*
78 cl
:*print-readably
* cl
:*read-eval
*
81 (declaim (type sb
!pretty
::pprint-dispatch-table cl
:*print-pprint-dispatch
*))
83 (declaim (type readtable cl
:*readtable
*))
85 (declaim (type (integer 2 36) cl
:*print-base
* cl
:*read-base
*))
87 (declaim (type (member :upcase
:downcase
:capitalize
) cl
:*print-case
*))
89 (declaim (type (member cl
:single-float cl
:double-float
90 cl
:short-float cl
:long-float
) cl
:*read-default-float-format
*))
92 (declaim (type list cl
:/ cl
:// cl
:/// cl
:*features
* cl
:*modules
*))
94 (declaim (type sb
!kernel
:type-specifier cl
:*break-on-signals
*))
96 (declaim (type package cl
:*package
*))
98 (declaim (type random-state cl
:*random-state
*))
100 ;; KLUDGE: some of these are more specific than just STREAM. However,
101 ;; (a) we can't express that portably, and (b) we probably violate
102 ;; these requirements somewhere as of sbcl-0.8.0. (and maybe we break
103 ;; even this in Gray streams or simple-streams? apparently not,
105 (declaim (type stream cl
:*standard-input
*
113 ;;; FIXME: make an SB!INT:FUNCTION-DESIGNATOR type for these
114 ;;; DOUBLE-FIXME: I'm not convinced that either of these variables
115 ;;; is actually allowed to be a CONS.
116 ;;; CLHS would have said "_extended_ function designator"
117 ;;; if it meant to allows (SETF f) as a designator.
118 (declaim (type (or function symbol cons
)
120 cl
:*macroexpand-hook
*))
122 (declaim (type unsigned-byte cl
:*gensym-counter
*))
124 (declaim (type (or unsigned-byte null
)
128 cl
:*print-miser-width
*
129 cl
:*print-right-margin
*))
131 (declaim (type pathname cl
:*default-pathname-defaults
*))
133 (declaim (type (or pathname null
)
136 cl
:*compile-file-pathname
*
137 cl
:*compile-file-truename
*))