Re: Is the CPAN river always a DAG?

[email protected] ("Henk P. Penning") Tue, 27 Mar 2018 15:56:44 +0200 (CEST)
Newsgroups perl.cpan.workers
Message-ID <[email protected]>
On Tue, 27 Mar 2018, James E Keenan wrote:

> Date: Tue, 27 Mar 2018 15:17:59 +0200
> From: James E Keenan <[email protected]>
> To: [email protected]
> Subject: Is the CPAN river always a DAG?
> 
> A few weeks ago I made a presentation to the Philadelphia Perlmongers 
> (http://thenceforward.net/perl/talks/phlpm20180312/index.html) on the subject 
> "Testing CPAN against the Perl 5 Core Distribution:  Where Do We Stand?".  In 
> that presentation, I sketched the concept of the CPAN river and described it 
> as a directed acyclic graph (DAG) 
> (http://thenceforward.net/perl/talks/phlpm20180312/slide017.html), using one 
> of Neil Bower's images to make that point.
>
> In the discussion afterwards, a prominent former COBOL programmer suggested 
> that there was nothing to exclude the possibility of circular dependencies 
> among CPAN distributions.  A could depend on B, which depends on C, which 
> depends on A.  If so, we would have a cyclic graph. Wouldn't that undermine 
> the concept of the CPAN river, he asked.
>
> Since all I know about DAGs I got from reading Wikipedia and the 
> documentation to Jarkko's Graph.pm module, I didn't have a good response.  So 
> I promised to ask the question here.
>
> * Can CPAN be cyclic?

   Yes ; considered as a graph, CPAN has points (modules),
   and links from point A to point B iff A uses B.
   Given a set of modules, any graph is possible.

   It is not hard to find a cycles, if (at least one) exists ;
   but if you find a cycle, it is (a priori) not clear how to break it.

> * If so, then does that mean that, when we speak of CPAN as a river, we are 
> *imposing* DAG-ness on it by means of the algorithm(s) with which we 
> calculate the river (e.g., https://github.com/dagolden/zzz-index-cpan-meta)?

   You can always make a DAG of CPAN, by leaving out links
   (dependencies) or points (modules).
   It is not so easy to find a minimal set of links to leave out.

> Jim Keenan

   Regards,

   Henk Penning

------------------------------------------------------------   _
Henk P. Penning, ICT-beta                 R Uithof MG-403    _/ \_
Faculty of Science, Utrecht University    T +31 30 253 4106 / \_/ \
Leuvenlaan 4, 3584CE Utrecht, NL          F +31 30 253 4553 \_/ \_/
http://www.staff.science.uu.nl/~penni101/ M [email protected]     \_/