<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body><div style="font-family: sans-serif;"><div class="markdown" style="white-space: normal;">
<p dir="auto">On 15 Dec 2022, at 1:07, Robert Dodier wrote:</p>
</div><div class="plaintext" style="white-space: normal;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;"><p dir="auto">Hi, I'm interested in analyzing dependencies among a collection of
<br>
Lisp files, or analyzing dependencies stated in a .asd file, or both.</p>
<p dir="auto">(1) Towards the goal of analyzing dependencies among Lisp files, I'm
<br>
trying to load asdf-dependency-grovel, and I'm not having any luck. I
<br>
obtained a tar.gz of the current version from Gitlab, from the project
<br>
<a href="https://gitlab.common-lisp.net/xcvb/asdf-dependency-grovel" style="color: #777777;">https://gitlab.common-lisp.net/xcvb/asdf-dependency-grovel</a>. I found it
<br>
necessary to patch tests/run-tests.sh to get anywhere (patch below)
<br>
and I get the following error at this point:</p>
<p dir="auto">------------------------------------------------
<br>
$ sh tests/run-tests.sh
<br>
This is SBCL 2.1.6, an implementation of ANSI Common Lisp.</p>
<p dir="auto">WARNING: redefining UIOP/UTILITY:PARSE-BODY in DEFUN
<br>
WARNING:
<br>
Deprecated recursive use of (ASDF/OPERATE:OPERATE 'ASDF/LISP-ACTION:LOAD-OP
<br>
'("test-serial-system")) while visiting
<br>
(ASDF-DEPENDENCY-GROVEL:DEPENDENCY-OP "test-serial"
<br>
"asdf-dependency-grovel-test/serial")
<br>
- please use proper dependencies instead</p>
<p dir="auto">debugger invoked on a SIMPLE-ERROR in thread
<br>
#<THREAD "main thread" RUNNING {988AB081}>:
<br>
Just performed compiling #<INSTRUMENTED-CL-SOURCE-FILE
<br>
"test-serial-system" "package"> but failed to mark it done
<br>
------------------------------------------------</p>
<p dir="auto">Can anyone offer any advice about the "failed to mark it done" error?
<br>
or the bit about "deprecated recursive use"?</p>
</blockquote></div>
<div class="markdown" style="white-space: normal;">
<p dir="auto">It would help to get a backtrace here. I can't tell from this if the error is happening in ASDF or in ASDF-DEPENDENCY-GROVEL (which probably isn't maintained).</p>
<p dir="auto">Also whose <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">run-tests.sh</code> are these? ASDF's tests or ASDF-dependency-grovel's?</p>
</div><div class="plaintext" style="white-space: normal;"><blockquote style="margin: 0 0 5px; padding-left: 5px; border-left: 2px solid #777777; color: #777777;"><p dir="auto">(2) About looking at dependencies stated in a .asd file, I have a .asd
<br>
file which ASDF is refusing to load because it has a circular
<br>
dependency. Is there a way to get ASDF to tell me what that circular
<br>
dependency is? Failing that, can someone suggest any tools to extract
<br>
a directed graph from a .asd file? I suppose it wouldn't be too hard
<br>
to do it myself but no need to reinvent the wheel.</p>
<p dir="auto">I'm thinking I could find a graph analysis library to extract any
<br>
cycles, if I had a directed graph in hand. I don't suppose someone has
<br>
already automated looking for cycles in .asd files?</p>
<p dir="auto">Thanks in advance for any advice, I appreciate your help.</p>
</blockquote></div>
<div class="markdown" style="white-space: normal;">
<p dir="auto">Again, it would help to have a backtrace from this circular dependency to help us get started (if you can share it -- I suppose your system could be private/proprietary).</p>
<p dir="auto">I just looked up the definition of the <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">circular-dependency</code> condition (in <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">asdf/action.lisp</code> around line 142) and it has a slot that contains the actions that create the cycle. Does that not give you enough information to isolate the problem? What are you seeing? The report function for this condition should be printing the set of actions in the loop (or at least I think so, that's some hairy <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">format</code> string there!).</p>
<p dir="auto">I wonder if we should adopt <code style="margin: 0 0; padding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">asdf-dependency-grovel</code> into the ASDF group on cl.net's GitLab? There's no guarantee that would result in active maintenance, though -- it should be obvious that I don't have a lot of cycles to spare...</p>
<p dir="auto">R</p>
</div>
</div>
</body>
</html>