aboutsummaryrefslogtreecommitdiff
path: root/src/property.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-07-01 15:52:47 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-07-06 21:19:39 -0700
commit92a34220b230e94c5a673d7e0a43df82858ffbb9 (patch)
tree140a9b16e171fbfaf8029c8408177a8eabb247cc /src/property.lisp
parent38b43ba1ab315efdb5750622dfb7bad45cfe1259 (diff)
downloadconsfigurator-92a34220b230e94c5a673d7e0a43df82858ffbb9.tar.gz
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 <spwhitton@spwhitton.name>
Diffstat (limited to 'src/property.lisp')
-rw-r--r--src/property.lisp15
1 files changed, 8 insertions, 7 deletions
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)