From: Brian Harring <ferringb@gmail.com>
To: Ben de Groot <yngwin@gentoo.org>
Cc: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] example conversion of gentoo-x86 current deps to unified dependencies
Date: Sun, 16 Sep 2012 06:15:01 -0700 [thread overview]
Message-ID: <20120916131501.GA23030@localhost> (raw)
In-Reply-To: <CAB9SyzQLUVPNoQdaKC_pk0iq9Kd+8xU2dR1zmvR45CGQAfGe3g@mail.gmail.com>
On Sun, Sep 16, 2012 at 03:39:22PM +0800, Ben de Groot wrote:
> On 16 September 2012 09:20, Brian Harring <ferringb@gmail.com> wrote:
> > Dumps are at
> > http://dev.gentoo.org/~ferringb/unified-dependencies-example/ .
> >
> > Herds, if you want to see what your pkgs would look like, look at
> > http://dev.gentoo.org/~ferringb/unified-dependencies-example/herds/ .
> >
> > If you'd like to see an *example effect* it has on what gets displayed
> > to the user (aka, after all major use conditionals are stripped), look
> > at
> > http://dev.gentoo.org/~ferringb/unified-dependencies-example/user-visible.txt
> > ; warning, that's a 55MB file. The syntax in use there isn't great,
> > but as said, it's an example.
> >
> > ...
> >
> > Additionally, the form used here makes *no assumption about default
> > context*; in any final solution we use, a default context would be
> > wise- say build,run. Again, an example of what I mean.
The dumps were regenerated; a default context of 'build,run' was
added. Basically in the absense of an explicit dep: targetting,
dep:build,run is assumed.
Essentially it makes the deps cleaner to read for the common case,
while also reducing the footprint at the cache, and vdb level; see
http://dev.gentoo.org/~ferringb/unified-dependencies-example/vdb-effect.txt
> Thanks. I have given it a quick overview for the qt herd. I still
> don't see what using DEPENDENCIES adds to what we do now with separate
> *DEPEND variables. I see no convincing reason to change what we do.
Ok, so here's some stats: in the tree, we have 31360 ebuilds, and 194
eclasses; grand total of 31554 sources of metadata content (I say
metadata since vapier has eblits in use which are just phase
functions- I'm not scanning those intentionally).
Doing some simple scans of the tree, here's some stats; note these
stats are duplicated in the glep (they're nice selling points, thus
might as well):
1) 746 hits in the tree for COMMON_DEPEND; that's 2%, and the usages
I'm aware of have been for literally, what it sounds like- depends
that are both DEPEND and RDEPEND.
2) scanning for assignments of RDEPEND=.*|$\{?DEPEND\}? gets a hit on
5343 unique sources. Searching for the inverse gets a hit on 10008
unique sources. Meaning that right there, ~48.6% of the tree is
duplicating deps between the two forms. This puts us to 16083 unique
sources in the tree that would benefit in some form (~51%).
3) What's interesting about that 51% is the eapi groupings; in EAPI4,
the autosetting of RDEPEND="${RDEPEND:-${DEPEND}}" was discontinued.
Roughly 50% of the initial 51% match is EAPI4; the rest are eapi0-3.
4) Again, keep in mind that the grep's in use above are single line
matches- I'm definitely missing some ebuilds, and for complex
dependencies that are appended/set by the eclass, likely missing a lot
of that too.
So... basically, people are already doing this manually with their own
intermediate vars.
Just a rough but mildly entertaining stat there's basically 8.38MB
worth of normalized, literal fricking dependency; using a crappy algo
(rather than a human doing the deps who can do it better), 37.4%
(3.1MB) of that is removed via going to dependencies. It goes
without saying that this would be a helluva lot less torturous on a
proper PM implementation that parses the tree once, and renders- let
alone repoman being able to avoid repeat scans of things it already
has examined.
Mind you, portage doesn't do that, but this would be good incentive to
do a proper tree. :)
> As I've said before on IRC, we need a good costs/benefits overview.
> Right now I only see costs (migrating ebuilds and eclasses) and no
> benefits.
Offhand... I wouldn't be pushing for this if I didn't think this would
be a boon over all- both for devs, and PMs.
I think the actual 'cost' probably got lost in the noise of the
various flames; what I'm proposing is basically zero cost for devs, it
shoves the work to the PM, leaving the option for devs to do a more
fine grained form if they can.
I'm starting a seperate thread w/ a glep for this; I think you should
take a look at the exact details of the specification including how
DEPEND/RDEPEND/PDEPEND are handled in parallel to DEPENDENCIES (short
version: if existent, they're automatically folded into DEPENDENCIES
in my proposal); the end result is basically zero pain transition,
while enabling us to start getting gains.
Cheers-
~brian
next prev parent reply other threads:[~2012-09-16 13:15 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-07 11:45 [gentoo-dev] Unified DEPENDENCIES concept Ciaran McCreesh
2012-09-07 12:29 ` Michał Górny
2012-09-07 12:36 ` Ciaran McCreesh
2012-09-07 14:23 ` Michał Górny
2012-09-07 14:53 ` Ciaran McCreesh
2012-09-07 15:02 ` Michał Górny
2012-09-07 15:07 ` Ciaran McCreesh
2012-09-07 15:16 ` Michał Górny
2012-09-07 15:25 ` Wulf C. Krueger
2012-09-07 14:50 ` Ian Stakenvicius
2012-09-07 14:58 ` Ciaran McCreesh
2012-09-07 15:46 ` Alexis Ballier
2012-09-07 16:03 ` Michał Górny
2012-09-07 16:11 ` Ian Stakenvicius
2012-09-07 16:28 ` Michael Mol
2012-09-07 16:34 ` Ciaran McCreesh
2012-09-07 16:40 ` "Paweł Hajdan, Jr."
2012-09-07 16:47 ` Ciaran McCreesh
2012-09-07 17:40 ` Alexis Ballier
2012-09-07 18:21 ` Michał Górny
2012-09-07 19:59 ` Alexis Ballier
2012-09-07 20:10 ` Michał Górny
2012-09-07 20:14 ` Ian Stakenvicius
2012-09-11 2:16 ` Brian Harring
2012-09-13 19:18 ` Kent Fredric
2012-09-13 22:17 ` Brian Harring
2012-09-15 11:06 ` Kent Fredric
2012-09-15 20:33 ` Brian Harring
2012-09-15 22:03 ` Michał Górny
2012-09-16 1:20 ` [gentoo-dev] example conversion of gentoo-x86 current deps to unified dependencies Brian Harring
2012-09-16 2:39 ` Diego Elio Pettenò
2012-09-16 7:39 ` Ben de Groot
2012-09-16 13:15 ` Brian Harring [this message]
2012-09-18 22:51 ` Matt Turner
2012-09-19 4:22 ` Ben de Groot
2012-09-19 10:59 ` [gentoo-dev] " Duncan
2012-09-19 13:09 ` Michael Orlitzky
2012-09-19 13:16 ` Ian Stakenvicius
2012-09-30 22:15 ` Brian Harring
2012-10-01 0:23 ` Duncan
2012-10-02 17:47 ` Ian Stakenvicius
2012-10-03 4:00 ` Ben de Groot
2012-10-07 14:09 ` [gentoo-dev] " Steven J. Long
2012-09-16 7:56 ` [gentoo-dev] " Michał Górny
2012-09-16 11:10 ` Brian Harring
2012-09-16 11:21 ` Michał Górny
2012-09-16 11:49 ` Brian Harring
2012-09-16 12:02 ` Michał Górny
2012-09-16 13:38 ` Brian Harring
2012-09-07 16:10 ` [gentoo-dev] Unified DEPENDENCIES concept Ciaran McCreesh
2012-09-07 16:53 ` Zac Medico
2012-09-07 16:58 ` Ciaran McCreesh
2012-09-07 17:02 ` Ian Stakenvicius
2012-09-07 17:40 ` Zac Medico
2012-09-07 17:58 ` Ian Stakenvicius
2012-09-07 18:18 ` Zac Medico
2012-09-07 18:23 ` Ciaran McCreesh
2012-09-07 18:23 ` Zac Medico
2012-09-07 18:23 ` Michał Górny
2012-09-07 18:31 ` Ciaran McCreesh
2012-09-07 18:46 ` Michał Górny
2012-09-07 18:52 ` Ciaran McCreesh
2012-09-07 19:11 ` Michał Górny
2012-09-07 19:13 ` Ciaran McCreesh
2012-09-07 19:21 ` Michał Górny
2012-09-07 19:25 ` Ciaran McCreesh
2012-09-07 20:07 ` Michał Górny
2012-09-07 20:15 ` Ciaran McCreesh
2012-09-07 20:08 ` Ian Stakenvicius
2012-09-07 20:14 ` Ciaran McCreesh
2012-09-07 20:28 ` Ian Stakenvicius
2012-09-07 20:40 ` Ciaran McCreesh
2012-09-07 19:42 ` Ian Stakenvicius
2012-09-07 17:31 ` Zac Medico
2012-09-07 16:12 ` "Paweł Hajdan, Jr."
2012-09-07 16:43 ` Michał Górny
2012-09-07 22:55 ` Michael Orlitzky
2012-09-08 6:43 ` Ciaran McCreesh
2012-09-08 13:01 ` Michael Orlitzky
2012-09-08 7:27 ` Michał Górny
2012-09-08 1:02 ` Patrick Lauer
2012-09-09 3:32 ` Matt Turner
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=20120916131501.GA23030@localhost \
--to=ferringb@gmail.com \
--cc=gentoo-dev@lists.gentoo.org \
--cc=yngwin@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