X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffull-eval.lisp;h=08af2682b5400462c95b3803a37a2d7cffbbfd0c;hb=3352db3a8b45bc544473915ef25a4708f386be36;hp=00e4e33055d062cc5158be0db820aee13db51a88;hpb=79a8e51bf4b06a5bd57bc90233605f98fee3b041;p=sbcl.git diff --git a/src/code/full-eval.lisp b/src/code/full-eval.lisp index 00e4e33..08af268 100644 --- a/src/code/full-eval.lisp +++ b/src/code/full-eval.lisp @@ -104,7 +104,8 @@ nil nil nil nil nil (sb!c::lexenv-handled-conditions old-lexenv) (sb!c::lexenv-disabled-package-locks old-lexenv) - (sb!c::lexenv-policy old-lexenv)))) + (sb!c::lexenv-policy old-lexenv) + (sb!c::lexenv-user-data old-lexenv)))) (dolist (declaration declarations) (unless (consp declaration) (ip-error "malformed declaration specifier ~S in ~S" @@ -175,7 +176,8 @@ (sb!c::internal-make-lexenv nil nil nil nil nil nil nil nil nil - sb!c::*policy*))) + sb!c::*policy* + nil))) ;;; Augment ENV with a special or lexical variable binding (declaim (inline push-var)) @@ -520,9 +522,7 @@ (t (values (cdr binding) :variable))) (case (sb!int:info :variable :kind symbol) (:macro (values (macroexpand-1 symbol) :expansion)) - (:alien (let ((type (sb!int:info :variable :alien-info symbol))) - (values (sb!alien::%heap-alien type) - :variable))) + (:alien (values (sb!alien-internals:alien-value symbol) :variable)) (t (values (symbol-value symbol) :variable)))))) ;;; Retrieve the function/macro binding of the symbol NAME in @@ -542,10 +542,8 @@ ;;; Return true if EXP is a lambda form. (defun lambdap (exp) - (case (car exp) ((lambda - sb!int:named-lambda - sb!kernel:instance-lambda) - t))) + (case (car exp) + ((lambda sb!int:named-lambda) t))) ;;; Split off the declarations (and the docstring, if ;;; DOC-STRING-ALLOWED is true) from the actual forms of BODY. @@ -575,7 +573,7 @@ ;;; in the environment ENV. (defun eval-lambda (exp env) (case (car exp) - ((lambda sb!kernel:instance-lambda) + ((lambda) (multiple-value-bind (body documentation declarations) (parse-lambda-headers (cddr exp) :doc-string-allowed t) (make-interpreted-function :lambda-list (second exp)