From b8488f899a9b9ffe2f39ab6af68ae59f9e6343a0 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Mon, 11 Mar 2024 21:46:24 +0300 Subject: [PATCH 1/2] Fix initite loop when the system is unknown to ASDF yet. --- src/utils.lisp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/utils.lisp b/src/utils.lisp index 609a8b7..a28c269 100644 --- a/src/utils.lisp +++ b/src/utils.lisp @@ -50,7 +50,11 @@ (labels ((recurse (system) (typecase system ((or string symbol) - (recurse (asdf:registered-system system))) + (let ((found-system (asdf:registered-system system))) + (unless found-system + (error "Unable to find system \"~A\". Try to load it using ASDF or Quicklisp." + system)) + (recurse found-system))) (asdf:system (loop for item in (asdf:system-depends-on system) @@ -60,14 +64,14 @@ when (and real-item (not seen) (asdf/system:primary-system-p real-item)) - do (pushnew real-item results - :test #'string=) + do (pushnew real-item results + :test #'string=) when (and real-item (not seen) (or all (not (asdf/system:primary-system-p real-item)))) - do (push real-item visited) - (recurse real-item)))))) + do (push real-item visited) + (recurse real-item)))))) (recurse system) (values (sort results #'string<))))) From 0e97024e6f949f63bd8bc736fb121171402ee4d4 Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Mon, 11 Mar 2024 21:47:57 +0300 Subject: [PATCH 2/2] Updated the changelog. --- src/changelog.lisp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/changelog.lisp b/src/changelog.lisp index 761a04c..ed12420 100644 --- a/src/changelog.lisp +++ b/src/changelog.lisp @@ -12,6 +12,8 @@ "ERROR-ON-WARNINGS" "DYNAMIC-BINDINGS") :external-docs ("https://40ants.com/doc/")) + (0.11.1 2024-03-11 + "* Fixed initite loop when the system is unknown to ASDF yet.") (0.11.0 2023-06-05 "* Now docs builder tries to load system using either Quicklisp client or ASDF if system is not already loaded. * Also a bug was fixed - previously DOCS-BUILDER:BUILD function hanged in recursion in case if asdf system wasn't found.