Fix grammar in lossage message
[sbcl.git] / src / code / cl-specials.lisp
blobc1fe63554fb784ef221816413b284cac33b2a9b7
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
5 ;;;; more information.
6 ;;;;
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 (eval-when (:compile-toplevel :load-toplevel :execute)
17 (sb!xc:proclaim '(special cl:*
18 cl:**
19 cl:***
20 cl:*break-on-signals*
21 cl:*compile-file-pathname*
22 cl:*compile-file-truename*
23 cl:*compile-print*
24 cl:*compile-verbose*
25 cl:*debug-io*
26 cl:*debugger-hook*
27 cl:*default-pathname-defaults*
28 cl:*error-output*
29 cl:*features*
30 cl:*gensym-counter*
31 cl:*load-pathname*
32 cl:*load-print*
33 cl:*load-truename*
34 cl:*load-verbose*
35 cl:*macroexpand-hook*
36 cl:*modules*
37 cl:*package*
38 cl:*print-array*
39 cl:*print-base*
40 cl:*print-case*
41 cl:*print-circle*
42 cl:*print-escape*
43 cl:*print-gensym*
44 cl:*print-length*
45 cl:*print-level*
46 cl:*print-lines*
47 cl:*print-miser-width*
48 cl:*print-pprint-dispatch*
49 cl:*print-pretty*
50 cl:*print-radix*
51 cl:*print-readably*
52 cl:*print-right-margin*
53 cl:*query-io*
54 cl:*random-state*
55 cl:*read-base*
56 cl:*read-default-float-format*
57 cl:*read-eval*
58 cl:*read-suppress*
59 cl:*readtable*
60 cl:*standard-input*
61 cl:*standard-output*
62 cl:*terminal-io*
63 cl:*trace-output*
64 cl:+
65 cl:++
66 cl:+++
67 cl:-
68 cl:/
69 cl://
70 cl:///))
72 (sb!xc:proclaim '(type t cl:+ cl:++ cl:+++ cl:- cl:* cl:** cl:***))
74 ;;; generalized booleans
75 (sb!xc:proclaim '(type t cl:*compile-print* cl:*compile-verbose*
76 cl:*load-print* cl:*load-verbose*
77 cl:*print-array* cl:*print-radix*
78 cl:*print-circle* cl:*print-escape*
79 cl:*print-gensym* cl:*print-pretty*
80 cl:*print-readably* cl:*read-eval*
81 cl:*read-suppress*))
83 (sb!xc:proclaim '(type sb!pretty::pprint-dispatch-table
84 cl:*print-pprint-dispatch*))
86 (sb!xc:proclaim '(type readtable cl:*readtable*))
88 (sb!xc:proclaim '(type (integer 2 36) cl:*print-base* cl:*read-base*))
90 (sb!xc:proclaim '(type (member :upcase :downcase :capitalize) cl:*print-case*))
92 (sb!xc:proclaim '(type (member cl:single-float cl:double-float
93 cl:short-float cl:long-float) cl:*read-default-float-format*))
95 (sb!xc:proclaim '(type list cl:/ cl:// cl:/// cl:*features* cl:*modules*))
97 (sb!xc:proclaim '(type sb!kernel:type-specifier cl:*break-on-signals*))
99 (sb!xc:proclaim '(type package cl:*package*))
101 (sb!xc:proclaim '(type random-state cl:*random-state*))
103 ;; KLUDGE: some of these are more specific than just STREAM. However,
104 ;; (a) we can't express that portably, and (b) we probably violate
105 ;; these requirements somewhere as of sbcl-0.8.0. (and maybe we break
106 ;; even this in Gray streams or simple-streams? apparently not,
107 ;; currently)
108 (sb!xc:proclaim '(type stream
109 cl:*standard-input*
110 cl:*error-output*
111 cl:*standard-output*
112 cl:*trace-output*
113 cl:*debug-io*
114 cl:*query-io*
115 cl:*terminal-io*))
117 ;;; FIXME: make an SB!INT:FUNCTION-DESIGNATOR type for these
118 ;;; DOUBLE-FIXME: I'm not convinced that either of these variables
119 ;;; is actually allowed to be a CONS.
120 ;;; CLHS would have said "_extended_ function designator"
121 ;;; if it meant to allows (SETF f) as a designator.
122 (sb!xc:proclaim '(type (or function symbol cons)
123 cl:*debugger-hook*
124 cl:*macroexpand-hook*))
126 (sb!xc:proclaim '(type unsigned-byte cl:*gensym-counter*))
128 (sb!xc:proclaim '(type (or unsigned-byte null)
129 cl:*print-length*
130 cl:*print-level*
131 cl:*print-lines*
132 cl:*print-miser-width*
133 cl:*print-right-margin*))
135 (sb!xc:proclaim '(type pathname cl:*default-pathname-defaults*))
137 (sb!xc:proclaim '(type (or pathname null)
138 cl:*load-pathname*
139 cl:*load-truename*
140 cl:*compile-file-pathname*
141 cl:*compile-file-truename*))
143 ) ; end EVAL-WHEN