X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fcl-specials.lisp;h=9c455f8d5e1ac6d79576fe63e4a867d5012ff7f8;hb=0f3a5f2e8886d18d0b4f6485c38a42be629422ae;hp=6f5a8303543d48fc7c7aebd13a8875ca9c679986;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/src/code/cl-specials.lisp b/src/code/cl-specials.lisp index 6f5a830..9c455f8 100644 --- a/src/code/cl-specials.lisp +++ b/src/code/cl-specials.lisp @@ -12,60 +12,124 @@ (in-package "COMMON-LISP") -(sb!int:file-comment - "$Header$") - (sb!xc:proclaim '(special cl:* - cl:** - cl:*** - cl:*break-on-signals* - cl:*compile-file-pathname* - cl:*compile-file-truename* - cl:*compile-print* - cl:*compile-verbose* - cl:*debug-io* - cl:*debugger-hook* - cl:*default-pathname-defaults* - cl:*error-output* - cl:*features* - cl:*gensym-counter* - cl:*load-pathname* - cl:*load-print* - cl:*load-truename* - cl:*load-verbose* - cl:*macroexpand-hook* - cl:*modules* - cl:*package* - cl:*print-array* - cl:*print-base* - cl:*print-case* - cl:*print-circle* - cl:*print-escape* - cl:*print-gensym* - cl:*print-length* - cl:*print-level* - cl:*print-lines* - cl:*print-miser-width* - cl:*print-pprint-dispatch* - cl:*print-pretty* - cl:*print-radix* - cl:*print-readably* - cl:*print-right-margin* - cl:*query-io* - cl:*random-state* - cl:*read-base* - cl:*read-default-float-format* - cl:*read-eval* - cl:*read-suppress* - cl:*readtable* - cl:*standard-input* - cl:*standard-output* - cl:*terminal-io* - cl:*trace-output* - cl:+ - cl:++ - cl:+++ - cl:- - cl:/ - cl:// - cl:///)) + cl:** + cl:*** + cl:*break-on-signals* + cl:*compile-file-pathname* + cl:*compile-file-truename* + cl:*compile-print* + cl:*compile-verbose* + cl:*debug-io* + cl:*debugger-hook* + cl:*default-pathname-defaults* + cl:*error-output* + cl:*features* + cl:*gensym-counter* + cl:*load-pathname* + cl:*load-print* + cl:*load-truename* + cl:*load-verbose* + cl:*macroexpand-hook* + cl:*modules* + cl:*package* + cl:*print-array* + cl:*print-base* + cl:*print-case* + cl:*print-circle* + cl:*print-escape* + cl:*print-gensym* + cl:*print-length* + cl:*print-level* + cl:*print-lines* + cl:*print-miser-width* + cl:*print-pprint-dispatch* + cl:*print-pretty* + cl:*print-radix* + cl:*print-readably* + cl:*print-right-margin* + cl:*query-io* + cl:*random-state* + cl:*read-base* + cl:*read-default-float-format* + cl:*read-eval* + cl:*read-suppress* + cl:*readtable* + cl:*standard-input* + cl:*standard-output* + cl:*terminal-io* + cl:*trace-output* + cl:+ + cl:++ + cl:+++ + cl:- + cl:/ + cl:// + cl:///)) + +(sb!xc:proclaim '(type t cl:+ cl:++ cl:+++ cl:- cl:* cl:** cl:***)) + +;;; generalized booleans +(sb!xc:proclaim '(type t cl:*compile-print* cl:*compile-verbose* + cl:*load-print* cl:*load-verbose* + cl:*print-array* cl:*print-radix* + cl:*print-circle* cl:*print-escape* + cl:*print-gensym* cl:*print-pretty* + cl:*print-readably* cl:*read-eval* + cl:*read-suppress*)) + +(sb!xc:proclaim '(type sb!pretty::pprint-dispatch-table + cl:*print-pprint-dispatch*)) + +(sb!xc:proclaim '(type readtable cl:*readtable*)) + +(sb!xc:proclaim '(type (integer 2 36) cl:*print-base* cl:*read-base*)) + +(sb!xc:proclaim '(type (member :upcase :downcase :capitalize) cl:*print-case*)) + +(sb!xc:proclaim '(type (member cl:single-float cl:double-float + cl:short-float cl:long-float) cl:*read-default-float-format*)) + +(sb!xc:proclaim '(type list cl:/ cl:// cl:/// cl:*features* cl:*modules*)) + +(sb!xc:proclaim '(type sb!kernel:type-specifier cl:*break-on-signals*)) + +(sb!xc:proclaim '(type package cl:*package*)) + +(sb!xc:proclaim '(type random-state cl:*random-state*)) + +;; KLUDGE: some of these are more specific than just STREAM. However, +;; (a) we can't express that portably, and (b) we probably violate +;; these requirements somewhere as of sbcl-0.8.0. (and maybe we break +;; even this in Gray streams or simple-streams? apparently not, +;; currently) +(sb!xc:proclaim '(type stream + cl:*standard-input* + cl:*error-output* + cl:*standard-output* + cl:*trace-output* + cl:*debug-io* + cl:*query-io* + cl:*terminal-io*)) + +;;; FIXME: make an SB!INT:FUNCTION-DESIGNATOR type for these +(sb!xc:proclaim '(type (or function symbol cons) + cl:*debugger-hook* + cl:*macroexpand-hook*)) + +(sb!xc:proclaim '(type unsigned-byte cl:*gensym-counter*)) + +(sb!xc:proclaim '(type (or unsigned-byte null) + cl:*print-length* + cl:*print-level* + cl:*print-lines* + cl:*print-miser-width* + cl:*print-right-margin*)) + +(sb!xc:proclaim '(type pathname cl:*default-pathname-defaults*)) + +(sb!xc:proclaim '(type (or pathname null) + cl:*load-pathname* + cl:*load-truename* + cl:*compile-file-pathname* + cl:*compile-file-truename*))