On 27 Apr 2022, at 11:15, phoebe Goldman wrote:

>> According to the docs, most operations inherit from self ward-operation, 
>> which would take the component-pathname as an input file (and might take 
>> others).
>
> I think input file sets are orthogonal to dependency direction. 
> SELFWARD-OPERATION means that (OP COMPONENT) depends on (DIFFERENT-OP 
> COMPONENT), like how (LOAD-OP LISP-SOURCE-FILE) depends on (COMPILE-OP 
> LISP-SOURCE-FILE). That doesn't mean that (LOAD-OP LISP-SOURCE-FILE) takes 
> COMPONENT-PATHNAME as an INPUT-FILE.

This is what I see in the source, but I haven't had enough time to read it over 
carefully (or really, at all):

```
  ;; An action with a selfward-operation by default gets its input-files from 
the output-files of
  ;; the actions using selfward-operations it depends on (and the same 
component),
  ;; or if there are none, on the component-pathname of the component if it's a 
file
  ;; -- and then on the results of the next-method.
  (defmethod input-files ((o selfward-operation) (c component))
    `(,@(or (loop :for dep-o :in (ensure-list (selfward-operation o))
                  :append (or (output-files dep-o c) (input-files dep-o c)))
            (if-let ((pathname (component-pathname c)))
              (and (file-pathname-p pathname) (list pathname))))
      ,@(call-next-method))))
```

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to