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"
(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))
(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
;;; 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.
;;; 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)