Gentoo Archives: gentoo-dev

From: Greg Turner <gmt@×××××.us>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: Is || ( Atom... ) broken?
Date: Wed, 09 Jul 2014 09:52:39
Message-Id: CA+VB3NTw2WJutskUL+Wtuz-p=79KQ_zOixA9Sd5R1G5EtC4_8w@mail.gmail.com
In Reply to: [gentoo-dev] Re: Is || ( Atom... ) broken? by Duncan <1i5t5.duncan@cox.net>
1 On Mon, Jul 7, 2014 at 9:39 PM, Duncan <1i5t5.duncan@×××.net> wrote:
2 > But from the sound of things, default backtrack=10, multilib, full
3 > @system set and default profile use, on spinning rust, is getting all but
4 > intolerable now. =:^(
5
6 Actually a mix of RAID0 and RAID1 over fast, new-ish SSDs -- anyhow I
7 doubt it would matter on spinning rust. When I sync, I run egencache
8 on everything and then emerge --metadata, so by the time I run emerge
9 -u*, it's against a warm cache; the disk light basically stays dark
10 the whole time. But, I have overlays with forced eclass overrides,
11 and over 2000 packages installed. Furthermore, after a sync, I'm
12 often waiting for emerge to fail, not to succeed.
13
14 For example, say I've multilibutized something upstream hasn't, and
15 upstream has version-bumped their non-multilibutized ebuild (but not
16 multilibutized it); and say I have packages installed requiring
17 multilib in the same slot -- that's a scenario I frequently find
18 myself in. Worse, I will usually provide --complete-graph to portage
19 (because otherwise, portage can fail to show me the clues I need to
20 detect precisely this problem). Basically, you could say my use case
21 is the perfect storm of ways to make emerge slow. I probably wouldn't
22 be kept waiting for those 30 minutes unless I'd waited a week or two,
23 and let gx86 provide newer versions of several of my ebuilds. I'm
24 pretty sure this triggers massive amounts of backtracking.
25
26 By the way, I've profiled depsolving on my system. Portage spends a
27 /majority/ of it's depsolving time solving regexes on behalf of
28 portage.dep.Atom. I have an untested theory that, without fixing any
29 algorithmic stuff, we could reap a meaningful O(1) gain implementing,
30 say, a CustomAtom (inherited by Atom) in cpython that does most of its
31 string parsing in hand-coded C.
32
33 -gmt

Replies

Subject Author
[gentoo-dev] Re: Is || ( Atom... ) broken? Duncan <1i5t5.duncan@×××.net>