From f506d491b7069789a5aa94381cbf50970b35b2f0 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Tue, 30 Nov 2021 20:22:29 -0700 Subject: signal a warning, not an error, when *CONSFIG* is not set *CONSFIG* is meant to be an optional feature, and this should make it easier to write code which doesn't use it. For example, code running in an IMAGE-DUMPED image might use (deploy-these :local ...) to build a propspec, but *PACKAGE* is likely to be COMMON-LISP-USER, not the user's consfig. Signed-off-by: Sean Whitton --- src/propspec.lisp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/propspec.lisp') diff --git a/src/propspec.lisp b/src/propspec.lisp index 1fa6744..2ef61d2 100644 --- a/src/propspec.lisp +++ b/src/propspec.lisp @@ -130,12 +130,23 @@ effect deployments: it sends over the ASDF systems specified by SYSTEMS." Consfigurator properties and property combinators code in this symbol's package applies to hosts.")))) +(define-condition no-consfig (simple-warning) ()) + (defclass propspec () ((systems :initarg :systems - :initform (or (symbol-value (find-symbol "*CONSFIG*")) - (error - "Looks like *CONSFIG* is not set; please call IN-CONSFIG")) + :initform + (or (handler-case (symbol-value (find-symbol "*CONSFIG*")) + (unbound-variable ())) + (warn 'no-consfig :format-arguments `(,*package*) :format-control +"Initialising propspec without any list of ASDF systems supplied, +and *PACKAGE* is not a package for which IN-CONSFIG has been called. +Consfigurator may not be able to start up remote Lisp images to effect +deployments involving this propspec; see the docstring for IN-CONSFIG. + +Either call IN-CONSFIG for ~S, explicitly pass +:SYSTEMS NIL to MAKE-PROPSPEC, or muffle this warning if code using this +propspec will not need to start up any remote Lisp images.")) :reader propspec-systems :documentation "List of names of ASDF systems, the loading of all of which is sufficient -- cgit v1.2.3