<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 5 May 2020, at 12:05, Marco Antoniotti wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">At a certain point I needed (I still do) the function SYSTEM-INPUT-FILES.  I think Fare send me a simple implementation that worked on the ASDF version of that time (long ago, I guess).  The function is the following.<br>
</p>
</blockquote></div>
<div style="white-space:normal">

<pre style="background-color:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:15px; margin-right:15px; max-width:90vw; overflow-x:auto; padding:5px" bgcolor="#F7F7F7"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0" bgcolor="#F7F7F7">(defun system-input-files (system)
  (multiple-value-bind (i o)
      (while-collecting (i o)
        (loop for (op . comp)
                in (plan-actions
                    (traverse-sub-actions 'load-op (find-system system)))
              do (map () #'i (input-files op comp))
                 (map () #'o (output-files op comp))))
    (remove-if #'(lambda (f) (member f o :test 'pathname-equal))
               (remove-duplicates i :from-end t :test 'pathname-equal))))
</code></pre>

<p dir="auto">So what you need here is the full set of plan actions.  You should be able to get this as follows:</p>

<pre style="background-color:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:15px; margin-right:15px; max-width:90vw; overflow-x:auto; padding:5px" bgcolor="#F7F7F7"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0" bgcolor="#F7F7F7">(defun system-input-files (system)
  (multiple-value-bind (i o)
      (while-collecting (i o)
        (loop for (op . comp)
                in (plan-actions (make-plan nil (make-operation 'load-op) (find-system system)))
              do (map () #'i (input-files op comp))
                 (map () #'o (output-files op comp))))
    (remove-if #'(lambda (f) (member f o :test 'pathname-equal))
               (remove-duplicates i :from-end t :test 'pathname-equal))))
</code></pre>

<p dir="auto"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">make-plan</code> will give you what you need to call <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">plan-actions</code> on in place of <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">traverse-sub-actions</code>.</p>
</div>
</div>
</body>
</html>