Commit 1ccd51fb authored by pfdietz's avatar pfdietz

Tests for binding of CL functions, macros, and global variables. Tests for...

Tests for binding of CL functions, macros, and global variables.  Tests for LAMBDA expressions.  Moved some functions to aux files for speed.
parent 3aba4b41
......@@ -356,6 +356,8 @@ the condition to go uncaught if it cannot be classified."
(defun is-t-or-nil (e)
(or (eqt e t) (eqt e nil)))
(declaim (special *subtype-table*))
(defun types-6-body ()
(loop
for p in *subtype-table* count
......
......@@ -989,3 +989,1049 @@
"Y-OR-N-P"
"YES-OR-NO-P"
"ZEROP"))
;;; Symbols classified by their kind in the spec
(defparameter *cl-function-symbols*
'(
*
+
-
/
/=
1+
1-
<
<=
=
>
>=
abort
abs
acons
acos
acosh
adjoin
adjust-array
adjustable-array-p
alpha-char-p
alphanumericp
append
apply
apropos
apropos-list
arithmetic-error-operands
arithmetic-error-operation
array-dimension
array-dimensions
array-displacement
array-element-type
array-has-fill-pointer-p
array-in-bounds-p
array-rank
array-row-major-index
array-total-size
arrayp
ash
asin
asinh
assoc-if-not
assoc
assoc-if
atan
atanh
atom
bit-and
bit-andc1
bit-andc2
bit-eqv
bit-ior
bit-nand
bit-nor
bit-not
bit-orc1
bit-orc2
bit-vector-p
bit-xor
boole
both-case-p
boundp
break
broadcast-stream-streams
butlast
byte
byte-position
byte-size
ceiling
cell-error-name
cerror
char-code
char-downcase
char-equal
char-greaterp
char-int
char-lessp
char-name
char-not-equal
char-not-greaterp
char-not-lessp
char-upcase
char/=
char<
char<=
char=
char>
char>=
character
characterp
cis
class-of
clear-input
clear-output
close
clrhash
code-char
coerce
compile
compile-file
compile-file-pathname
compiled-function-p
complement
complex
complexp
compute-restarts
concatenate
concatenated-stream-streams
conjugate
cons
consp
constantly
constantp
continue
copy-alist
copy-list
copy-pprint-dispatch
copy-readtable
copy-seq
copy-structure
copy-symbol
copy-tree
cos
cosh
count
count-if
count-if-not
decode-float
decode-universal-time
delete
delete-duplicates
delete-file
delete-if
delete-if-not
delete-package
denominator
deposit-field
describe
digit-char
digit-char-p
directory
directory-namestring
disassemble
dpb
dribble
echo-stream-input-stream
echo-stream-output-stream
;;; The function ED is commented out because an implementation
;;; needn't provide this function.
;; ed
encode-universal-time
endp
enough-namestring
ensure-directories-exist
ensure-generic-function
eq
eql
equal
equalp
error
eval
evenp
every
exp
export
expt
fboundp
fceiling
ffloor
file-author
file-error-pathname
file-length
file-namestring
file-position
file-write-date
find
find-all-symbols
find-if
find-if-not
find-package
find-restart
find-symbol
finish-output
float
float-digits
float-precision
float-radix
float-sign
floatp
floor
fmakunbound
force-output
format
fresh-line
fround
funcall
function-lambda-expression
functionp
gcd
gensym
gentemp
get-decoded-time
get-dispatch-macro-character
get-internal-real-time
get-internal-run-time
get-macro-character
get-output-stream-string
get-properties
get-setf-expansion
get-universal-time
graphic-char-p
hash-table-count
hash-table-p
hash-table-rehash-size
hash-table-rehash-threshold
hash-table-size
hash-table-test
host-namestring
identity
imagpart
import
input-stream-p
inspect
integer-decode-float
integer-length
integerp
interactive-stream-p
intern
intersection
invalid-method-error
invoke-debugger
invoke-restart
invoke-restart-interactively
isqrt
keywordp
last
lcm
ldb-test
ldiff
length
lisp-implementation-type
lisp-implementation-version
list
list*
list-all-packages
list-length
listen
listp
load
load-logical-pathname-translations
log
logand
logandc1
logandc2
logbitp
logcount
logeqv
logical-pathname
logior
lognand
lognor
lognot
logorc1
logorc2
logtest
logxor
long-site-name
lower-case-p
machine-instance
machine-type
machine-version
macroexpand
macroexpand-1
make-array
make-broadcast-stream
make-concatenated-stream
make-condition
make-dispatch-macro-character
make-echo-stream
make-hash-table
make-list
make-load-form-saving-slots
make-package
make-pathname
make-random-state
make-sequence
make-string
make-string-input-stream
make-string-output-stream
make-symbol
make-synonym-stream
make-two-way-stream
makunbound
map
map-into
mapc
mapcan
mapcar
mapcon
maphash
mapl
maplist
max
member
member-if
member-if-not
merge
merge-pathnames
method-combination-error
min
minusp
mismatch
mod
muffle-warning
name-char
namestring
nbutlast
nconc
nintersection
not
notany
notevery
nreconc
nreverse
nset-difference
nset-exclusive-or
nstring-capitalize
nstring-downcase
nstring-upcase
nsublis
nsubst
nsubst-if
nsubst-if-not
nsubstitute
nsubstitute-if
nsubstitute-if-not
nthcdr
null
numberp
numerator
nunion
oddp
open
open-stream-p
output-stream-p
package-error-package
package-name
package-nicknames
package-shadowing-symbols
package-use-list
package-used-by-list
packagep
pairlis
parse-integer
parse-namestring
pathname
pathname-device
pathname-directory
pathname-host
pathname-match-p
pathname-name
pathname-type
pathname-version
pathnamep
peek-char
phase
plusp
position
position-if
position-if-not
pprint
pprint-dispatch
pprint-fill
pprint-indent
pprint-linear
pprint-newline
pprint-tab
pprint-tabular
prin1
prin1-to-string
princ
princ-to-string
print
print-not-readable-object
probe-file
proclaim
provide
random-state-p
rassoc
rassoc-if
rassoc-if-not
rational
rationalize
rationalp
read
read-byte
read-char
read-char-no-hang
read-delimited-list
read-from-string
read-line
read-preserving-whitespace
read-sequence
readtablep
realp
realpart
reduce
rem
remhash
remove
remove-duplicates
remove-if
remove-if-not
remprop
rename-file
rename-package
replace
require
restart-name
revappend
reverse
room
round
rplaca
rplacd
scale-float
search
set
set-difference
set-dispatch-macro-character
set-exclusive-or
set-macro-character
set-pprint-dispatch
set-syntax-from-char
shadow
shadowing-import
short-site-name
signal
signum
simple-bit-vector-p
simple-condition-format-arguments
simple-condition-format-control
simple-string-p
simple-vector-p
sin
sinh
slot-exists-p
sleep
slot-boundp
slot-makunbound
slot-value
software-type
software-version
some
sort
special-operator-p
sqrt
stable-sort
standard-char-p
store-value
stream-element-type
stream-error-stream
stream-external-format
streamp
string
string-capitalize
string-downcase
string-equal
string-greaterp
string-left-trim
string-lessp
string-not-equal
string-not-greaterp
string-not-lessp
string-right-trim
string-trim
string-upcase
string/=
string<
string<=
string=
string>
string>=
stringp
sublis
subsetp
subst
subst-if
subst-if-not
substitute
substitute-if
substitute-if-not
subtypep
sxhash
symbol-name
symbol-package
symbolp
synonym-stream-symbol
tailp
tan
tanh
terpri
translate-logical-pathname
translate-pathname
tree-equal
truename
truncate ftruncate
two-way-stream-input-stream
two-way-stream-output-stream
type-error-datum
type-error-expected-type
type-of
typep
unbound-slot-instance
unexport
unintern
union
unread-char
unuse-package
upgraded-array-element-type
upgraded-complex-part-type
upper-case-p
use-package
use-value
user-homedir-pathname
values-list
vector
vector-pop
vector-push
vector-push-extend
vectorp
warn
wild-pathname-p
write
write-byte
write-char
write-line
write-sequence
write-string
write-to-string
y-or-n-p
yes-or-no-p
zerop
))
(defparameter *cl-variable-symbols*
'(
*
**
***
*break-on-signals*
*compile-file-pathname*
*compile-file-truename*
*compile-print*
*compile-verbose*
*debug-io*
*debugger-hook*
*default-pathname-defaults*
*error-output*
*features*
*gensym-counter*
*load-pathname*
*load-print*
*load-truename*
*load-verbose*
*macroexpand-hook*
*modules*
*package*
*print-array*
*print-base*
*print-case*
*print-circle*
*print-escape*
*print-gensym*
*print-length*
*print-level*
*print-lines*
*print-miser-width*
*print-pprint-dispatch*
*print-pretty*
*print-radix*
*print-readably*
*print-right-margin*
*query-io*
*random-state*
*read-base*
*read-default-float-format*
*read-eval*
*read-suppress*
*readtable*
*standard-input*
*standard-output*
*terminal-io*
*trace-output*
+
++
+++
/
//
///
))
(defparameter *cl-constant-symbols*
'(
array-dimension-limit
array-rank-limit
array-total-size-limit
boole-1
boole-2
boole-and
boole-andc1
boole-andc2
boole-c1
boole-c2
boole-clr
boole-eqv
boole-ior
boole-nand
boole-nor
boole-orc1
boole-orc2
boole-set
boole-xor
call-arguments-limit
char-code-limit
double-float-epsilon
double-float-negative-epsilon
internal-time-units-per-second
lambda-list-keywords
lambda-parameters-limit
least-negative-double-float
least-negative-long-float
least-negative-normalized-double-float
least-negative-normalized-long-float
least-negative-normalized-short-float
least-negative-normalized-single-float
least-negative-short-float
least-negative-single-float
least-positive-double-float
least-positive-long-float
least-positive-normalized-double-float
least-positive-normalized-long-float