[clbuild-devel] Recursive search for dependencies
budden
budden-lisp at mail.ru
Tue Dec 16 23:55:16 UTC 2008
Hallo David, list
Tuesday, December 16, 2008, 9:30:20 PM, you wrote:
DL> Quoting budden (budden-lisp at mail.ru):
>> Am I right that "sh clbuild install/update system" will update only
>> direct dependencies of that system and do not recurse dependency tree?
Well, I see I didnt' specify the problem with a sufficient details.
I'm talking about adding new projects which are currently not listed
in clbuild at all and can depend on some yet unlisted libraries.
In the situation, I look at .asd file, see dependencies, try
to identify projects, load the projects (I'm extremely reluctant
to load everything as I'm narrow in time and storage).
DL> "clbuild install" doesn't install systems, it installs projects.
DL> Projects can contain multiple systems. System dependencies are
DL> transitive and acyclic; project dependencies are not necessarily
DL> transitive and can be cyclic. Project dependencies always agree with
DL> system dependencies if every project contains only one system.
DL> Please refer to the FAQ at:
DL> http://common-lisp.net/project/clbuild/#faq_dependency_details
The only thing that is unclear (for me) is that this project of calculating
dependencies is runned when we invoke "rebuild-dependencies" (am I
right?). So, if I don't have all projects installed and I am reluctant to install
everything, I have to specify dependencies for my new system manually.
And I can not do it automatically until system is loaded.
So if I have .asd file and dependencies file, I have to traverse one level
of project dependency tree manually.
Well, I see I might confuse you completely. But I tried hard to
explain myself :)
DL> Please explain what your intention is.
DL> If project FOO has a system file foo.asd, and you do
DL> $ clbuild install foo
DL> followed by
DL> CL-USER> (asdf:operate 'asdf:load-op :foo)
DL> the first step is meant to install all projects required for the second
DL> step to work.
You see now that it holds only for system/project which was processed by
rebuild-dependencies already, but not for my new project. So, I can't
know dependencies until I installed project and I can't install
project until I know dependencies.
DL> From your mail I'm not sure whether you are
DL> a) reporting a bug (i.e. our dependency guessing logic got something
DL> wrong and the design goal above was violated)
DL> or
DL> b) requesting a feature (you think that the design goal above isn't
DL> sufficient)
b)
DL> If you are requesting a change in behaviour, I suggest a command line
DL> argument (say, --follow-auxiliary-dependencies) that joins the
DL> dependencies. This could be implemented in the shell script.
Yeah, but I didn't want to bother you asking and I was rushing, so I implemented it in
lisp which I know better than shell. Of course, command line switch would be better.
Thanks for fast reply!
--
Best regards,
budden mailto:budden-lisp at mail.ru
More information about the clbuild-devel
mailing list