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 (sb!xc
:proclaim
'(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 (sb!xc
:proclaim
'(type t cl
:+ cl
:++ cl
:+++ cl
:- cl
:* cl
:** cl
:***))
72 ;;; generalized booleans
73 (sb!xc
:proclaim
'(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 (sb!xc
:proclaim
'(type sb
!pretty
::pprint-dispatch-table
82 cl
:*print-pprint-dispatch
*))
84 (sb!xc
:proclaim
'(type readtable cl
:*readtable
*))
86 (sb!xc
:proclaim
'(type (integer 2 36) cl
:*print-base
* cl
:*read-base
*))
88 (sb!xc
:proclaim
'(type (member :upcase
:downcase
:capitalize
) cl
:*print-case
*))
90 (sb!xc
:proclaim
'(type (member cl
:single-float cl
:double-float
91 cl
:short-float cl
:long-float
) cl
:*read-default-float-format
*))
93 (sb!xc
:proclaim
'(type list cl
:/ cl
:// cl
:/// cl
:*features
* cl
:*modules
*))
95 (sb!xc
:proclaim
'(type sb
!kernel
:type-specifier cl
:*break-on-signals
*))
97 (sb!xc
:proclaim
'(type package cl
:*package
*))
99 (sb!xc
:proclaim
'(type random-state cl
:*random-state
*))
101 ;; KLUDGE: some of these are more specific than just STREAM. However,
102 ;; (a) we can't express that portably, and (b) we probably violate
103 ;; these requirements somewhere as of sbcl-0.8.0. (and maybe we break
104 ;; even this in Gray streams or simple-streams? apparently not,
106 (sb!xc
:proclaim
'(type stream
115 ;;; FIXME: make an SB!INT:FUNCTION-DESIGNATOR type for these
116 (sb!xc
:proclaim
'(type (or function symbol cons
)
118 cl
:*macroexpand-hook
*))
120 (sb!xc
:proclaim
'(type unsigned-byte cl
:*gensym-counter
*))
122 (sb!xc
:proclaim
'(type (or unsigned-byte null
)
126 cl
:*print-miser-width
*
127 cl
:*print-right-margin
*))
129 (sb!xc
:proclaim
'(type pathname cl
:*default-pathname-defaults
*))
131 (sb!xc
:proclaim
'(type (or pathname null
)
134 cl
:*compile-file-pathname
*
135 cl
:*compile-file-truename
*))