> The graph is not acyclic.

Hi Mac,

That is true. The scripts would need to check for cycles and either bail
out to admit manual treatment, or automagically call upon "special cases".
Ideally, the latter, once the basic idea is admitted as feasible. This
could be implemented as follows:

1. When developing a set of Package User scripts to be released in
conjunction with the latest {,B,JHA,C}LFS book, scan the dependency graph
for cycles. This can be done using Tarjan's algorithm in O(V+E) time,
where V and E are the respective vertex and edge numbers.
2. Each detected cycle can be "shrunk" to a so-called pseudonode. This can
be done recursively until the graph is directed-acyclic, i.e. a DAG.
3. Pseudonodes in the final DAG can then be associated with scripts that
resolve the circular dependencies.

It would take work the first time, but then each pseudonode script would
only need testing and a bit of reconfiguring - not a total rewrite - with
each update to the book. And once one person has it working, it will be
available for download by anyone who wishes to use this system. This would
be especially expedient if there were a package users wiki.


Cheers,


Tim
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page

Reply via email to