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