From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1QVFLo-0003nQ-TJ for garchives@archives.gentoo.org; Sat, 11 Jun 2011 03:59:09 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 64F231C036; Sat, 11 Jun 2011 03:59:01 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 364301C036 for ; Sat, 11 Jun 2011 03:59:01 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B1A381B4031 for ; Sat, 11 Jun 2011 03:59:00 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 200988003C for ; Sat, 11 Jun 2011 03:59:00 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <075ce106b3ae1e55cc810b4c946deea83bcb4a8e.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/ X-VCS-Repository: proj/portage X-VCS-Files: pym/_emerge/depgraph.py X-VCS-Directories: pym/_emerge/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 075ce106b3ae1e55cc810b4c946deea83bcb4a8e Date: Sat, 11 Jun 2011 03:59:00 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: X-Archives-Hash: a2240cef780acbb9059d21a6e6c1ae7e commit: 075ce106b3ae1e55cc810b4c946deea83bcb4a8e Author: Zac Medico gentoo org> AuthorDate: Sat Jun 11 03:58:38 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Sat Jun 11 03:58:38 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D075ce106 depgraph._serialize_tasks: move libperl/perl code This ensures that all asap_nodes are explored before setting prefer_asap to False. --- pym/_emerge/depgraph.py | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index baa40c4..ca86904 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -5019,7 +5019,23 @@ class depgraph(object): selected_nodes =3D set() if gather_deps(ignore_priority, mergeable_nodes, selected_nodes, node): - break + # When selecting asap_nodes, we need to ensure + # that we don't selected a large runtime cycle + # that is obviously sub-optimal. This will be + # obvious if any of the non-asap selected_nodes + # is a leaf node when medium_soft deps are + # ignored. + if prefer_asap and asap_nodes and \ + len(selected_nodes) > 1: + for node in selected_nodes.difference( + asap_nodes): + if not mygraph.child_nodes(node, + ignore_priority =3D + DepPriorityNormalRange.ignore_medium_soft): + selected_nodes =3D None + break + if selected_nodes: + break else: selected_nodes =3D None if selected_nodes: @@ -5031,19 +5047,6 @@ class depgraph(object): # so ignore them for the next iteration. prefer_asap =3D False continue - # Make sure that we haven't selected a large runtime - # cycle that is obviously sub-optimal. This will be - # obvious if any of the non-asap selected_nodes is - # a leaf node when medium_soft deps are ignored. - if len(selected_nodes) > 1: - for node in selected_nodes.difference(asap_nodes): - if not mygraph.child_nodes(node, - ignore_priority =3D - DepPriorityNormalRange.ignore_medium_soft): - prefer_asap =3D False - break - if not prefer_asap: - continue =20 if selected_nodes and ignore_priority is not None: # Try to merge ignored medium_soft deps as soon as possible