projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.8.0.48:
[sbcl.git]
/
src
/
code
/
eval.lisp
diff --git
a/src/code/eval.lisp
b/src/code/eval.lisp
index
b81bd7c
..
4c350e4
100644
(file)
--- a/
src/code/eval.lisp
+++ b/
src/code/eval.lisp
@@
-21,8
+21,7
@@
;; evaluations/compilations, though [e.g. the ignored variable in
;; (DEFUN FOO (X) 1)]. -- CSR, 2003-05-13
(let ((fun (sb!c:compile-in-lexenv (gensym "EVAL-TMPFUN-")
;; evaluations/compilations, though [e.g. the ignored variable in
;; (DEFUN FOO (X) 1)]. -- CSR, 2003-05-13
(let ((fun (sb!c:compile-in-lexenv (gensym "EVAL-TMPFUN-")
- `(lambda ()
- ,expr)
+ `(lambda () ,expr)
lexenv)))
(funcall fun)))
lexenv)))
(funcall fun)))
@@
-122,13
+121,12
@@
(set (first args) (eval (second args)))))
(let ((symbol (first name)))
(case (info :variable :kind symbol)
(set (first args) (eval (second args)))))
(let ((symbol (first name)))
(case (info :variable :kind symbol)
- ;; FIXME: I took out the *TOPLEVEL-AUTO-DECLARE*
- ;; test here, and removed the
- ;; *TOPLEVEL-AUTO-DECLARE* variable; the code
- ;; should now act as though that variable is
- ;; NIL. This should be tested..
(:special)
(:special)
- (t (return (%eval original-exp lexenv))))))))
+ (t (return (%eval original-exp lexenv))))
+ (unless (type= (info :variable :type symbol)
+ *universal-type*)
+ ;; let the compiler deal with type checking
+ (return (%eval original-exp lexenv)))))))
((progn)
(eval-progn-body (rest exp) lexenv))
((eval-when)
((progn)
(eval-progn-body (rest exp) lexenv))
((eval-when)