Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/_emerge/
Date: Fri, 31 May 2013 23:52:21
Message-Id: 1370044306.1ea42d5d12ff3f8e59ebcfd12025d401b51894e1.zmedico@gentoo
1 commit: 1ea42d5d12ff3f8e59ebcfd12025d401b51894e1
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Fri May 31 23:24:32 2013 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Fri May 31 23:51:46 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=1ea42d5d
7
8 depgraph: tuple display list, avoid copies
9
10 TODO: Optimize _show_merge_list to use reference comparison more
11 instead of == comparison.
12
13 ---
14 pym/_emerge/Scheduler.py | 2 +-
15 pym/_emerge/depgraph.py | 19 +++++++++++++------
16 2 files changed, 14 insertions(+), 7 deletions(-)
17
18 diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py
19 index 5930550..4e8b223 100644
20 --- a/pym/_emerge/Scheduler.py
21 +++ b/pym/_emerge/Scheduler.py
22 @@ -1830,7 +1830,7 @@ class Scheduler(PollScheduler):
23 mylist = mydepgraph.altlist()
24 if mylist:
25 if "--tree" in self.myopts:
26 - mylist.reverse()
27 + mylist = tuple(reversed(mylist))
28 mydepgraph.display(mylist, favorites=self._favorites)
29
30 if not success:
31
32 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
33 index 7929a78..9c0a966 100644
34 --- a/pym/_emerge/depgraph.py
35 +++ b/pym/_emerge/depgraph.py
36 @@ -5704,9 +5704,13 @@ class depgraph(object):
37 except self._serialize_tasks_retry:
38 pass
39
40 - retlist = self._dynamic_config._serialized_tasks_cache[:]
41 + retlist = self._dynamic_config._serialized_tasks_cache
42 if reversed:
43 + # TODO: deprecate the "reversed" parameter (builtin name collision)
44 + retlist = list(retlist)
45 retlist.reverse()
46 + retlist = tuple(retlist)
47 +
48 return retlist
49
50 def _implicit_libc_deps(self, mergelist, graph):
51 @@ -6575,10 +6579,12 @@ class depgraph(object):
52 for blocker in unsolvable_blockers:
53 retlist.append(blocker)
54
55 + retlist = tuple(retlist)
56 +
57 if unsolvable_blockers and \
58 not self._accept_blocker_conflicts():
59 self._dynamic_config._unsatisfied_blockers_for_display = unsolvable_blockers
60 - self._dynamic_config._serialized_tasks_cache = retlist[:]
61 + self._dynamic_config._serialized_tasks_cache = retlist
62 self._dynamic_config._scheduler_graph = scheduler_graph
63 # Blockers don't trigger the _skip_restart flag, since
64 # backtracking may solve blockers when it solves slot
65 @@ -6587,7 +6593,7 @@ class depgraph(object):
66
67 if self._dynamic_config._slot_collision_info and \
68 not self._accept_blocker_conflicts():
69 - self._dynamic_config._serialized_tasks_cache = retlist[:]
70 + self._dynamic_config._serialized_tasks_cache = retlist
71 self._dynamic_config._scheduler_graph = scheduler_graph
72 raise self._unknown_internal_error()
73
74 @@ -6641,12 +6647,13 @@ class depgraph(object):
75 def _show_merge_list(self):
76 if self._dynamic_config._serialized_tasks_cache is not None and \
77 not (self._dynamic_config._displayed_list is not None and \
78 - (self._dynamic_config._displayed_list == self._dynamic_config._serialized_tasks_cache or \
79 + (self._dynamic_config._displayed_list is self._dynamic_config._serialized_tasks_cache or \
80 + self._dynamic_config._displayed_list == self._dynamic_config._serialized_tasks_cache or \
81 self._dynamic_config._displayed_list == \
82 list(reversed(self._dynamic_config._serialized_tasks_cache)))):
83 - display_list = self._dynamic_config._serialized_tasks_cache[:]
84 + display_list = self._dynamic_config._serialized_tasks_cache
85 if "--tree" in self._frozen_config.myopts:
86 - display_list.reverse()
87 + display_list = tuple(reversed(display_list))
88 self.display(display_list)
89
90 def _show_unsatisfied_blockers(self, blockers):