1 |
On Friday, April 24, 2020 1:03 AM, Alec Ten Harmsel <alec@××××××××××××××.com> wrote: |
2 |
|
3 |
> If it's so easy, why don't you implement it? /s |
4 |
|
5 |
because busy and got better things in life. |
6 |
|
7 |
but what is your point? |
8 |
|
9 |
1. are you trying to get to know me a bit closer? |
10 |
2. or are you trying to indirectly a claim that |
11 |
making portage faster is too hard? |
12 |
|
13 |
if (1) then off-topic. if (2) then you're |
14 |
committing a logical fallacy. some version of |
15 |
appeal to majority? hence your claim is |
16 |
unsubstantiated, and is deleted from space thanks |
17 |
to occam's razor. |
18 |
|
19 |
if it was too hard for most people in the past, it |
20 |
doesn't mean that it is hard for everyone else. |
21 |
|
22 |
not saying that your claim is wrong. but saying |
23 |
that your tool to show that claim is not working. |
24 |
|
25 |
not saying that your claim is right either. it's |
26 |
so far floating somewhere in the ``unknown'' |
27 |
region (until a proof is presented; not a logical |
28 |
fallacy). |
29 |
|
30 |
|
31 |
> Sorry for being a little glib but every couple months I go through this thought process: |
32 |
> |
33 |
> 1. Wow, portage is slow |
34 |
> 2. I can make this faster, it can't be that hard |
35 |
> 3. ...wow, nevermind, it is really hard |
36 |
> 4. Thank you portage maintainers!!!!! |
37 |
|
38 |
if your point is to share history, thanks. else: |
39 |
logical fallacy (read above). |
40 |
|
41 |
|
42 |
> I don't think it's O(log n). Roughly, for 1 package portage has to make the full dep |
43 |
> tree, solve all the constraints to resolve to actual packages that can be installed, |
44 |
> and order and merge the tree into a single branch of packages to install. I'm |
45 |
> probably missing some steps and obviously that's not a rigorous explanation but |
46 |
> it's at least O(n) where n is the total number of dependencies. |
47 |
|
48 |
not mutually exclusive. your n (number of deps) |
49 |
is different than my n (number of packages in |
50 |
portage). e.g. i think that : |
51 |
|
52 |
O(your n) = O(log(my n)) |
53 |
|
54 |
i think the real trick is to split portage into |
55 |
two separate parts: |
56 |
|
57 |
1. index: pre-compiled indexed global dependency |
58 |
graph. this should allow efficient jumping |
59 |
into the right spot of the graph to efficiently |
60 |
walk around to meet the dependencies based on |
61 |
constraints (e.g. USE flags, versions). |
62 |
|
63 |
imo this can do the dependency resolution that |
64 |
emerge does in 45 seconds in less than 3 |
65 |
seconds. |
66 |
|
67 |
2. scripts to carry out the compile/installation. |
68 |
|
69 |
currently portage has (1) and (2) mixed into a |
70 |
single directory-based structure containing files |
71 |
in a format that is not efficient for graph |
72 |
walking, and uses the wrong tool (python). |
73 |
|
74 |
|
75 |
> Speeding up portage would be a fun project but it's less important |
76 |
> that portage being correct. |
77 |
|
78 |
yes, the speed issue is not a problem (more like a |
79 |
psychological issue). but that's misleading. |
80 |
portage's problems is beyond the timing issue. |
81 |
e.g.: |
82 |
|
83 |
1. the fact that emerge uses python is horrible. |
84 |
ideally a package manager must have least |
85 |
run-time dependencies possible. but now, |
86 |
emerge is based on python, which limits our |
87 |
freedom in upgrading python versions in the |
88 |
fear of wrecking emerge (and getting stuck, |
89 |
needing manual attention). which is why i |
90 |
think ideally new emerge should be some |
91 |
statically linked compiled binary. |
92 |
|
93 |
2. i'm sure smart people can point out better |
94 |
reasons about how emerge is wrong. |