ASDF/INTERFACE::TRAVERSE-SUB-ACTIONS

Robert Goldman rpgoldman at sift.info
Tue May 5 17:32:11 UTC 2020


Glad to help.  Or, perhaps, heλp...


On 5 May 2020, at 12:29, Marco Antoniotti wrote:

> Thank you.
>
>
>
> I will include the new version in HELambdaP.
>
>
>
> Apologies for the miscommunication.
>
>
>
> All the best
>
>
>
> Marco Antoniotti
> DISCo, UniversitĂ  degli Studi di Milano-Bicocca
>
> +39 02 6448 7901
>
> bimib.disco.unimib.it
>
>
>
>
>
> **From:** [Robert Goldman](<mailto:rpgoldman at sift.info>)
> **Sent:** Tuesday, May 5, 2020 19:27
> **To:** [Marco Antoniotti](<mailto:marco.antoniotti at unimib.it>)
> **Cc:** 
> [asdf-devel at common-lisp.net](<mailto:asdf-devel at common-lisp.net>)
> **Subject:** Re: ASDF/INTERFACE::TRAVERSE-SUB-ACTIONS
>
>
>
> On 5 May 2020, at 12:05, Marco Antoniotti wrote:
>
>> 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.
>
>
>     (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))))
>
>
> So what you need here is the full set of plan actions. You should be 
> able to get this as follows:
>
>
>     (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))))
>
>
> `make-plan` will give you what you need to call `plan-actions` on in 
> place of `traverse-sub-actions`.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20200505/bc5d0dd5/attachment-0001.htm>


More information about the asdf-devel mailing list