From 92a34220b230e94c5a673d7e0a43df82858ffbb9 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 1 Jul 2021 15:52:47 -0700 Subject: DEFPROPSPEC :DESC/:HOSTATTRS/:CHECK: use WITH-*HOST*-*CONSFIG* We already evaluate the lambda list inside WITH-*HOST*-*CONSFIG* when computing the propspec, so this change means we consistently evaluate the lambda list in that context, rather than evaluating it outside that context in the case of some property subroutines. This affects &AUX parameters, &OPTIONAL argument default value forms, etc., which would evaluate differently without WITH-*HOST*-CONSFIG*, such as a call to MAKE-PROPSPEC with no :SYSTEMS keyword parameter supplied. Signed-off-by: Sean Whitton --- src/property.lisp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/property.lisp') diff --git a/src/property.lisp b/src/property.lisp index 105c1f0..9e517f2 100644 --- a/src/property.lisp +++ b/src/property.lisp @@ -405,13 +405,14 @@ You can usually use DEFPROPLIST instead of DEFPROPSPEC, which see." (loop while (and (listp (car forms)) (keywordp (caar forms))) do (setf (getf slots (caar forms)) `(lambda (plist) - (destructuring-bind ,lambda (getf plist :orig-args) - ,@(and (member (caar forms) '(:desc :hostattrs)) - `((declare - (ignorable - ,@(ordinary-ll-variable-names - lambda :include-supplied-p t))))) - ,@(cdr (pop forms)))))) + (with-*host*-*consfig* + (destructuring-bind ,lambda (getf plist :orig-args) + ,@(and (member (caar forms) '(:desc :hostattrs)) + `((declare + (ignorable + ,@(ordinary-ll-variable-names + lambda :include-supplied-p t))))) + ,@(cdr (pop forms))))))) (unless (getf slots :hostattrs) (setq programmatic-warning nil)) (setf (getf slots :hostattrs) -- cgit v1.2.3