diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2021-07-01 15:52:47 -0700 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2021-07-06 21:19:39 -0700 |
commit | 92a34220b230e94c5a673d7e0a43df82858ffbb9 (patch) | |
tree | 140a9b16e171fbfaf8029c8408177a8eabb247cc /src | |
parent | 38b43ba1ab315efdb5750622dfb7bad45cfe1259 (diff) | |
download | consfigurator-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')
-rw-r--r-- | src/property.lisp | 15 |
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) |