<!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">Glad to help. Or, perhaps, heλp...</p>
<br><p dir="auto">On 5 May 2020, at 12:29, Marco Antoniotti wrote:</p>
</div>
<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><div id="09DC833D-2750-4115-B253-EC36325D0571"><div lang="EN-US" link="blue" vlink="#954F72"><div style="page:WordSection1"><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>Thank you.</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>I will include the new version in HELambdaP.</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>Apologies for the miscommunication.</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>All the best</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>Marco Antoniotti<br>DISCo, Università degli Studi di Milano-Bicocca</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>+39 02 6448 7901</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'>bimib.disco.unimib.it</p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in"><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt; border:none; padding:0'><b>From: </b><a href="mailto:rpgoldman@sift.info">Robert Goldman</a><br><b>Sent: </b>Tuesday, May 5, 2020 19:27<br><b>To: </b><a href="mailto:marco.antoniotti@unimib.it">Marco Antoniotti</a><br><b>Cc: </b><a href="mailto:asdf-devel@common-lisp.net">asdf-devel@common-lisp.net</a><br><b>Subject: </b>Re: ASDF/INTERFACE::TRAVERSE-SUB-ACTIONS</p></div><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p><div><div><p><span style='font-family:"Arial",sans-serif'>On 5 May 2020, at 12:05, Marco Antoniotti wrote:</span></p></div><div><blockquote style="border:none;border-left:solid #777777 1.5pt;padding:0in 0in 0in 4.0pt;margin-left:0in;margin-right:0in;margin-bottom:3.75pt"><p><span style='font-family:"Arial",sans-serif;color:#777777'>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.</span></p></blockquote></div><div><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:11.25pt; margin-right:11.25pt; max-width:90vw; mso-margin-top-alt:0; overflow-x:auto'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7">(defun system-input-files (system)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (multiple-value-bind (i o)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (while-collecting (i o)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (loop for (op . comp)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> in (plan-actions</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (traverse-sub-actions 'load-op (find-system system)))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> do (map () #'i (input-files op comp))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (map () #'o (output-files op comp))))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (remove-if #'(lambda (f) (member f o :test 'pathname-equal))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (remove-duplicates i :from-end t :test 'pathname-equal))))</span><span style="background:#F7F7F7"></span></code></pre><p><span style='font-family:"Arial",sans-serif'>So what you need here is the full set of plan actions. You should be able to get this as follows:</span></p><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:11.25pt; margin-right:11.25pt; max-width:90vw; mso-margin-top-alt:0; overflow-x:auto'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7">(defun system-input-files (system)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (multiple-value-bind (i o)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (while-collecting (i o)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (loop for (op . comp)</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> in (plan-actions (make-plan nil (make-operation 'load-op) (find-system system)))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> do (map () #'i (input-files op comp))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (map () #'o (output-files op comp))))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (remove-if #'(lambda (f) (member f o :test 'pathname-equal))</span><span style="background:#F7F7F7"></span></code></pre><pre style='font-family:"Courier New"; font-size:10pt; margin:0; margin-bottom:0.0001pt; mso-style-link:"HTML Preformatted Char"; mso-style-priority:99; background:#F7F7F7; margin-left:11.25pt; margin-right:11.25pt; mso-margin-top-alt:0'><code style='font-family:"Courier New"; mso-style-priority:99'><span style="color:black;background:#F7F7F7"> (remove-duplicates i :from-end t :test 'pathname-equal))))</span><span style="background:#F7F7F7"></span></code></pre></div></div><p><code style='font-family:"Courier New"; mso-style-priority:99'><span style="font-size:10.0pt;color:black;background:#F7F7F7">make-plan</span></code><span style='font-family:"Arial",sans-serif'> will give you what you need to call </span><code style='font-family:"Courier New"; mso-style-priority:99'><span style="font-size:10.0pt;color:black;background:#F7F7F7">plan-actions</span></code><span style='font-family:"Arial",sans-serif'> on in place of </span><code style='font-family:"Courier New"; mso-style-priority:99'><span style="font-size:10.0pt;color:black;background:#F7F7F7">traverse-sub-actions</span></code><span style='font-family:"Arial",sans-serif'>.</span></p><p style='font-family:"Calibri", sans-serif; font-size:11pt; margin:0; margin-bottom:0.0001pt'> </p></div></div></div></blockquote>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
</blockquote></div>
</div>
</body>
</html>