public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Pieter Van den Abeele <pvdabeel@gentoo.org>
To: gentoo-portage-dev@lists.gentoo.org
Cc: Pieter Van den Abeele <pvdabeel@gentoo.org>
Subject: Re: [gentoo-portage-dev] building dependency tree
Date: Wed, 12 May 2004 07:14:29 +0200	[thread overview]
Message-ID: <3F00C422-A3D3-11D8-9EB9-0003938E7E46@gentoo.org> (raw)
In-Reply-To: <40A193B5.9080206@skylineaero.com>

On 12 May 2004, at 05:02, Andrew Gaffney wrote:

> and then the list of packages to emerge

A topological ordering on the relevant digraph.

The relevant digraph as computed by portage is a 'tree' (note: cycles 
filtered) which is created by performing a (series of) walk(s) in the 
graph (portage "tree"). Dependencies = edges, for each ebuild there are 
2^n (where n = number of USE flags in the ebuilds IUSE) choice nodes in 
the graph.

I believe a DFS and BFS strategy have been suggested for the walk on 
this list, each having their own advantages and disadvantages. The main 
issue with the search strategy used by portage is that the runtime 
complexity explodes when you try to implement stuff like 'package foo 
conflicts with package bar' (the best we can do is without causing the 
explosion is: package foo version X conflicts with package foo version 
Y (same package - different version - 'slot' functionality). Of course 
there are solutions to this problem, but those fall outside the scope 
of your question :-)

Best regards,

Pieter Van den Abeele


--
gentoo-portage-dev@gentoo.org mailing list


  reply	other threads:[~2004-05-12  5:14 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-12  3:02 [gentoo-portage-dev] building dependency tree Andrew Gaffney
2004-05-12  5:14 ` Pieter Van den Abeele [this message]
2004-05-12  6:42   ` Andrew Gaffney
2004-05-12  7:59     ` Pieter Van den Abeele
2004-05-12 14:43       ` Andrew Gaffney
2004-05-12 15:02         ` Pieter Van den Abeele
2004-05-12 15:14           ` [gentoo-portage-dev] /etc/make.profile/use.defaults (was: building dependency tree) Andrew Gaffney
2004-05-12 15:19             ` [gentoo-portage-dev] /etc/make.profile/use.defaults Andrew Gaffney
2004-05-12 15:43               ` Pieter Van den Abeele
2004-05-12 15:44                 ` Andrew Gaffney
2004-05-12 16:03                   ` Pieter Van den Abeele
2004-05-12 16:08                     ` Andrew Gaffney
2004-05-12 16:33                     ` Jason Stubbs
2004-05-12 16:39                       ` Andrew Gaffney
2004-05-12 17:28                         ` Jason Stubbs
2004-05-12 16:25 ` [gentoo-portage-dev] building dependency tree Jason Stubbs
2004-05-15  4:12   ` Andrew Gaffney
2004-05-15  6:14     ` Jason Stubbs
2004-05-15  6:50       ` Andrew Gaffney
2004-05-15  7:06         ` Jason Stubbs
2004-05-15 15:31           ` Andrew Gaffney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F00C422-A3D3-11D8-9EB9-0003938E7E46@gentoo.org \
    --to=pvdabeel@gentoo.org \
    --cc=gentoo-portage-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox