Make AND and OR not be recursively expanded in syntax
[sbcl.git] / src / code / early-cl.lisp
blob59d8a51e663113ff4cdc04804d24d4ace8e5b6a9
1 ;;;; miscellaneous stuff about the ANSI standard
3 ;;;; This software is part of the SBCL system. See the README file for
4 ;;;; more information.
5 ;;;;
6 ;;;; This software is derived from the CMU CL system, which was
7 ;;;; written at Carnegie Mellon University and released into the
8 ;;;; public domain. The software is in the public domain and is
9 ;;;; provided with absolutely no warranty. See the COPYING and CREDITS
10 ;;;; files for more information.
12 (in-package "SB!KERNEL")
14 ;;; Common Lisp special variables which have SB-XC versions
15 (proclaim '(special sb!xc:*macroexpand-hook* sb!xc:*gensym-counter*))
17 ;;; the Common Lisp defined type spec symbols
18 (defparameter *!standard-type-names*
19 '(array atom bignum bit bit-vector character compiled-function
20 complex cons double-float extended-char fixnum float function
21 hash-table integer keyword list long-float nil null number package
22 pathname random-state ratio rational real readtable sequence
23 short-float simple-array simple-bit-vector simple-string simple-vector
24 single-float standard-char stream string base-char symbol t vector))
26 (defvar sb!sys::*software-version* nil)
28 ;;; The BOOLE function dispaches to any logic operation depending on
29 ;;; the value of an argument. Presently, legal selector values are [0..15].
30 ;;; BOOLE is open coded for calls with any of the constants declared below.
32 (defconstant sb!xc:boole-clr 0
33 #!+sb-doc
34 "Boole function op, makes BOOLE return 0.")
36 (defconstant sb!xc:boole-set 1
37 #!+sb-doc
38 "Boole function op, makes BOOLE return -1.")
40 (defconstant sb!xc:boole-1 2
41 #!+sb-doc
42 "Boole function op, makes BOOLE return integer1.")
44 (defconstant sb!xc:boole-2 3
45 #!+sb-doc
46 "Boole function op, makes BOOLE return integer2.")
48 (defconstant sb!xc:boole-c1 4
49 #!+sb-doc
50 "Boole function op, makes BOOLE return complement of integer1.")
52 (defconstant sb!xc:boole-c2 5
53 #!+sb-doc
54 "Boole function op, makes BOOLE return complement of integer2.")
56 (defconstant sb!xc:boole-and 6
57 #!+sb-doc
58 "Boole function op, makes BOOLE return logand of integer1 and integer2.")
60 (defconstant sb!xc:boole-ior 7
61 #!+sb-doc
62 "Boole function op, makes BOOLE return logior of integer1 and integer2.")
64 (defconstant sb!xc:boole-xor 8
65 #!+sb-doc
66 "Boole function op, makes BOOLE return logxor of integer1 and integer2.")
68 (defconstant sb!xc:boole-eqv 9
69 #!+sb-doc
70 "Boole function op, makes BOOLE return logeqv of integer1 and integer2.")
72 (defconstant sb!xc:boole-nand 10
73 #!+sb-doc
74 "Boole function op, makes BOOLE return log nand of integer1 and integer2.")
76 (defconstant sb!xc:boole-nor 11
77 #!+sb-doc
78 "Boole function op, makes BOOLE return lognor of integer1 and integer2.")
80 (defconstant sb!xc:boole-andc1 12
81 #!+sb-doc
82 "Boole function op, makes BOOLE return logandc1 of integer1 and integer2.")
84 (defconstant sb!xc:boole-andc2 13
85 #!+sb-doc
86 "Boole function op, makes BOOLE return logandc2 of integer1 and integer2.")
88 (defconstant sb!xc:boole-orc1 14
89 #!+sb-doc
90 "Boole function op, makes BOOLE return logorc1 of integer1 and integer2.")
92 (defconstant sb!xc:boole-orc2 15
93 #!+sb-doc
94 "Boole function op, makes BOOLE return logorc2 of integer1 and integer2.")