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*))