Gentoo Archives: gentoo-dev

From: R0b0t1 <r030t1@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Native vs Scripting language for portage speed concerns was -> Sets vs Meta ebuilds
Date: Tue, 11 Jul 2017 01:12:36
Message-Id: CAAD4mYiVdP6bxHFr66t0BxppMLJ9vr=KELb-gQOWZvmPxuvhpQ@mail.gmail.com
In Reply to: Re: [gentoo-dev] Native vs Scripting language for portage speed concerns was -> Sets vs Meta ebuilds by "William L. Thomson Jr."
1 On Mon, Jul 10, 2017 at 6:56 PM, William L. Thomson Jr.
2 <wlt-ml@××××××.com> wrote:
3 > On Mon, 10 Jul 2017 17:47:45 -0500
4 > Gordon Pettey <petteyg359@×××××.com> wrote:
5 >
6 >> On Mon, Jul 10, 2017 at 5:24 PM, Michał Górny <mgorny@g.o>
7 >> wrote:
8 >>
9 >> > On pon, 2017-07-10 at 17:40 -0400, William L. Thomson Jr. wrote:
10 >> > > Stop getting lost in the weeds!!!!
11 >> > > You all are making this about -c vs -C. I am not talking about
12 >> > > that!
13 >> > >
14 >> > > LET ME CLARIFY....
15 >> > >
16 >> > > When using -C, portage SHOULD warn for dependencies like it does
17 >> > > for profile and set packages, PERIOD. NOTHING to do with -c vs -C.
18 >> > >
19 >> > > When using -c the output should say in layman's terms,
20 >> > > "Not removing package A because it is a dependency"
21 >> >
22 >> > William, I'm not sure if you're aware of how package managers work
23 >> > but checking reverse dependencies of a package takes significant
24 >> > amount of time.
25 >>
26 >>
27 >> for x in $(eix -I --only-names); do time equery g $x > /dev/null; done
28 >>
29 >> The only single package on my system that took more than 2 seconds
30 >> total time was gcc. The idea that that is too much time to add to
31 >> emerge -c or -C, which in my experience already takes multiple
32 >> seconds to run anyway is kind of silly.
33 >
34 > IMHO anyone complaining about time taking for dependency resolution
35 > etc. They should spend THEIR time writing stuff in a real native
36 > language for speed.
37 >
38 > The difference I see with jem[1] vs java-config, is ridiculous.
39 > Sometimes I merge hundreds of java packages. All those milliseconds add
40 > up. Not to mention resources, ram, CPU, and all drains your battery...
41 >
42 > If aspects of portage were done in C or C++, or maybe even Go. There
43 > would be substantial performance improvements. The existing python code
44 > can remain. Python can load and call functions from C/C++ DSO. And vice
45 > versa, calling Python code from C/C++. I would say C vs C++ but that is
46 > up to others.
47 >
48
49 https://wiki.gentoo.org/wiki/Q_applets
50
51 What you're suggesting is actually really hard, and the root of the
52 problems tend to be graph traversals and path searches (for
53 dependencies) not so much miscellaneous milliseconds spent in
54 interpreter overhead.
55
56 Then again, I suppose there will be people on computers slow enough
57 where the latter does make a difference.
58
59 > Put my time where my mouth is... Well I did, its called jem. What is
60 > jem? Its java-config ported to C. I would be looking to port more of
61 > Gentoo's tools to C for longevity and speed. Not speed of development,
62 > but speed for everyone else. Instead I am doing C for other projects.
63 >
64 > 1. https://github.com/Obsidian-StudiosInc/jem
65 >
66 > P.S.
67 > jem does need a bit more work to replace java-config entirely. Its
68 > designed to not be Gentoo specific. There is little interest from
69 > Gentoo, much less outside. Thus its more a case study than anything
70 > benefiting anyone including myself. I will further it as I have
71 > interest and time permits. Still have a few more defects to address.
72 >

Replies