ASDF: module and system level dependencies don't work right?
Todd Sabin <[email protected]>
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
The :depends-on attribute seems to work differently with modules and
systems than it does with individual source files. If you have a system
like this:
(asdf:defsystem system1
:components
((:file "package")
(:file "foo" :depends-on ("package"))
(:file "bar" :depends-on ("package" "foo")))
:depends-on ())
then modifying package.lisp and doing a load-op will cause all three
files to be compiled and loaded.
However, if you have a system like this:
(asdf:defsystem system2
:components
((:module package
:components ((:file "package")))
(:module foo
:components ((:file "foo"))
:depends-on (package))
(:module bar
:components ((:file "bar"))
:depends-on (package foo)))
:depends-on ())
then modifying package.lisp and doing a load-op will cause only
package.lisp to be compiled and loaded. (And similarly for system
level dependencies.)
Another way to say it would be that for modules and systems,
:depends-on seems to operate more like a ":requires" operator.
Is this intentional? I've assumed it's a bug, and have "fixed" it
locally, but my "fix" ended up changing a lot of stuff, and almost
certainly broke some undocumented features. (I couldn't figure out
how the :force option was supposed to work, for example.) I'm pretty
sure it also ends up doing more loading than necessary now, but I
prefer too much loading to not enough compiling.
If someone can confirm this is a bug, and tell me how things like
:force are supposed to work, I can try to clean up my patch. I also
created a few more complicated system definitions for testing. I
suppose it'd be nice to add them to the test suite, but I haven't done
that yet...
Thanks,
Todd
p.s. If anyone wants my half-baked patch as is, let me know. It'd be
against an asdf.lisp from a few revisions back of cvs head, but I've
confirmed the behavior above is still present in head.
--
Todd Sabin <[email protected]>
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click