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")
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 (special ,@list
))
71 (eval-when (:compile-toplevel
:load-toplevel
)
72 (dolist (symbol ',list
)
73 (declare (notinline (setf sb
!int
:info
))) ; skirt failure-to-inline warning
74 (setf (sb!int
:info
:variable
:wired-tls symbol
) t
)))))
76 (declaim (type t cl
:+ cl
:++ cl
:+++ cl
:- cl
:* cl
:** cl
:***))
78 ;;; generalized booleans
79 (declaim (type t cl
:*compile-print
* cl
:*compile-verbose
*
80 cl
:*load-print
* cl
:*load-verbose
*
81 cl
:*print-array
* cl
:*print-radix
*
82 cl
:*print-circle
* cl
:*print-escape
*
83 cl
:*print-gensym
* cl
:*print-pretty
*
84 cl
:*print-readably
* cl
:*read-eval
*
87 (declaim (type sb
!pretty
::pprint-dispatch-table cl
:*print-pprint-dispatch
*))
89 (declaim (type readtable cl
:*readtable
*))
91 (declaim (type (integer 2 36) cl
:*print-base
* cl
:*read-base
*))
93 (declaim (type (member :upcase
:downcase
:capitalize
) cl
:*print-case
*))
95 (declaim (type (member cl
:single-float cl
:double-float
96 cl
:short-float cl
:long-float
) cl
:*read-default-float-format
*))
98 (declaim (type list cl
:/ cl
:// cl
:/// cl
:*features
* cl
:*modules
*))
100 (declaim (type sb
!kernel
:type-specifier cl
:*break-on-signals
*))
102 (declaim (type package cl
:*package
*))
104 (declaim (type random-state cl
:*random-state
*))
106 ;; KLUDGE: some of these are more specific than just STREAM. However,
107 ;; (a) we can't express that portably, and (b) we probably violate
108 ;; these requirements somewhere as of sbcl-0.8.0. (and maybe we break
109 ;; even this in Gray streams or simple-streams? apparently not,
111 (declaim (type stream cl
:*standard-input
*
119 ;;; FIXME: make an SB!INT:FUNCTION-DESIGNATOR type for these
120 ;;; DOUBLE-FIXME: I'm not convinced that either of these variables
121 ;;; is actually allowed to be a CONS.
122 ;;; CLHS would have said "_extended_ function designator"
123 ;;; if it meant to allows (SETF f) as a designator.
124 (declaim (type (or function symbol cons
)
126 cl
:*macroexpand-hook
*))
128 (declaim (type unsigned-byte cl
:*gensym-counter
*))
130 (declaim (type (or unsigned-byte null
)
134 cl
:*print-miser-width
*
135 cl
:*print-right-margin
*))
137 (declaim (type pathname cl
:*default-pathname-defaults
*))
139 (declaim (type (or pathname null
)
142 cl
:*compile-file-pathname
*
143 cl
:*compile-file-truename
*))