aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2022-06-27 12:27:33 -0700
committerSean Whitton <spwhitton@spwhitton.name>2022-06-27 13:26:21 -0700
commitd1d85342c3da2d8fed3f0efd07b170fc6495a163 (patch)
tree55289c52832fabf7f5e15952476a52b2feced003
parentbc6d78724561a7a4c0162ff0de7afaa1e656621c (diff)
downloadconsfigurator-d1d85342c3da2d8fed3f0efd07b170fc6495a163.tar.gz
APPLY-AND-PRINT: add some commentary
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rw-r--r--src/combinator.lisp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/combinator.lisp b/src/combinator.lisp
index e40bb8a..b1264af 100644
--- a/src/combinator.lisp
+++ b/src/combinator.lisp
@@ -190,6 +190,13 @@ apply the elements of REQUIREMENTS in reverse order."
(seqreport (s)
(format s "Skip remainder of sequence containing (~{~S~^ ~})"
(cons (car propapp) (propapp-args propapp)))))
+ ;; In both the restarts and the fallback cleanup form, we treat any
+ ;; non-local exit at all as though it were caused by the signalling
+ ;; of a condition subtyping FAILED-CHANGE. One possible improvement
+ ;; might be to pass "failed" to POST-APPLY, and signal
+ ;; SKIPPED-PROPERTIES, only when the non-local exit is due to a
+ ;; condition subtyping ERROR. Alternatively, maybe we could drop
+ ;; FAILED-CHANGE and make ABORTED-CHANGE a direct subclass of ERROR.
(unwind-protect
;; Establish restarts to be invoked by WITH-SKIP-FAILED-CHANGES
;; or possibly interactively by the user. There are two of