asdf 3.3.4 skips input files when system specified simultaneously in :defsystem-depends-on and :depends-on
In the follow hypothetical .asdf
(asdf:defsystem #:test
:defsystem-depends-on (:trivial-features) ;; This defsystem really doesn't, but for purposes of a MWE...
:depends-on (:trivial-features)
:components ((:file "test")))
An (asdf:operate 'asdf:monolithic-lib-op :test)
does NOT include the required sources from :trivial-features. An older version of asdf (for instance, the 3.1.8.8 asdf bundled in recent ECL) is correct. The problem seems unique to new versions. I did not test the other monolithic bundle operations, they may or may not have the same issue.
WORKING, OLD ASDF:
> (asdf:component-depends-on 'asdf:monolithic-lib-op :test)
((#<compile-op > #<cl-source-file "trivial-features" "src" "tf-ecl">
#<module "trivial-features" "src"> #<cl-source-file "test" "test">))
> (asdf:asdf-version)
"3.1.8.8"
> (asdf:input-files 'asdf:monolithic-lib-op :test)
(#P"/root/.cache/common-lisp/ecl-20.4.24-unknown-linux-armv6l/root/quicklisp/local-projects/ts-fpga/ql-bundle/software/trivial-features-trivial-features-20200709185032/src/tf-ecl.o"
#P"/root/.cache/common-lisp/ecl-20.4.24-unknown-linux-armv6l/root/quicklisp/local-projects/test/test.o")
NONWORKING, ASDF 3.3.5:
> (asdf:component-depends-on 'asdf:monolithic-lib-op :test)
((#<compile-op > #<cl-source-file "test" "test">)
(ASDF/FIND-SYSTEM:DEFINE-OP "test"))
> (asdf:asdf-version)
"3.3.4.5"
> (asdf:input-files 'asdf:monolithic-lib-op :test)
(#P"/root/.cache/common-lisp/ecl-20.4.24-linux-armv6l/root/quicklisp/local-projects/test/test.o")
The first realworld occurance of this in my case was a miscompile of the very common net.didierverna.clon command line options system, thereby making its use with ecl impossible to accomodate on the latest asdf's. There are likely others, and I'm pretty sure its behavior extends to .asd's with (asdf:load-system)
in the file and not just for :defsystem-depends-on