projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.28.66: implement SB-EXT:GET-TIME-OF-DAY
[sbcl.git]
/
src
/
compiler
/
fopcompile.lisp
diff --git
a/src/compiler/fopcompile.lisp
b/src/compiler/fopcompile.lisp
index
4ea842f
..
b1cbefe
100644
(file)
--- a/
src/compiler/fopcompile.lisp
+++ b/
src/compiler/fopcompile.lisp
@@
-47,11
+47,7
@@
(fopcompilable-p macroexpansion)
;; Punt on :ALIEN variables
(let ((kind (info :variable :kind form)))
(fopcompilable-p macroexpansion)
;; Punt on :ALIEN variables
(let ((kind (info :variable :kind form)))
- (or (eq kind :special)
- ;; Not really a global, but a variable for
- ;; which no information exists.
- (eq kind :global)
- (eq kind :constant))))))
+ (member kind '(:special :constant :global :unknown))))))
(and (listp form)
(ignore-errors (list-length form))
(multiple-value-bind (macroexpansion macroexpanded-p)
(and (listp form)
(ignore-errors (list-length form))
(multiple-value-bind (macroexpansion macroexpanded-p)
@@
-158,11
+154,10
@@
for value = (if (consp binding)
(second binding)
nil)
for value = (if (consp binding)
(second binding)
nil)
- ;; Only allow binding lexicals,
- ;; since special bindings can't be
- ;; easily expressed with fops.
+ ;; Only allow binding locals, since special bindings can't
+ ;; be easily expressed with fops.
always (and (eq (info :variable :kind name)
always (and (eq (info :variable :kind name)
- :global)
+ :unknown)
(let ((*lexenv* (ecase operator
(let orig-lexenv)
(let* *lexenv*))))
(let ((*lexenv* (ecase operator
(let orig-lexenv)
(let* *lexenv*))))