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))
(cond
((eq type :constant)
;; Horrible place for this, but it works.
- (ip-error "Can't bind constant symbol ~S" symbol))
+ (ip-error "Can't bind constant symbol: ~S" symbol))
+ ((eq type :global)
+ ;; Ditto...
+ (ip-error "Can't bind a global variable: ~S" symbol))
((eq type :special) t)
((member symbol declared-specials :test #'eq)
t)
;;; 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)