1 |
On Tue, 6 Aug 2013 21:33:02 +0100 |
2 |
Ciaran McCreesh <ciaran.mccreesh@××××××××××.com> wrote: |
3 |
|
4 |
> On Tue, 6 Aug 2013 16:22:48 -0400 |
5 |
> Alexis Ballier <aballier@g.o> wrote: |
6 |
> > On Tue, 6 Aug 2013 20:44:57 +0100 |
7 |
> > Ciaran McCreesh <ciaran.mccreesh@××××××××××.com> wrote: |
8 |
> > > On Tue, 6 Aug 2013 15:31:14 -0400 |
9 |
> > > Alexis Ballier <aballier@g.o> wrote: |
10 |
> > > > Well, ok, but this doesn't relate to what I was writing. |
11 |
> > > > Subslot, or slot emulators or whatever, in their current usage |
12 |
> > > > with := dependencies, are not fine grained enough for some use |
13 |
> > > > cases. Those cause regressions if used improperly. |
14 |
> > > |
15 |
> > > There is no regression. Previously, packages sometimes broke when |
16 |
> > > doing an upgrade. Now, packages do not break when doing an |
17 |
> > > upgrade. |
18 |
> > |
19 |
> > The regression is the useless rebuild. Without preserve-libs, |
20 |
> > packages break even more: cf the libc example. |
21 |
> |
22 |
> You can't claim a broken solution to be better than a working |
23 |
> solution. |
24 |
|
25 |
They're not yet comparable. What I claim is: |
26 |
- Preserve-libs is needed for extreme cases such as the libc or libs |
27 |
the compiler links to. |
28 |
- When used correctly, subslots provide a nice way to automate the |
29 |
rebuilds and correctly handle dependencies. |
30 |
- Current subslots and := deps do not provide all the required |
31 |
flexibility for real world packages. |
32 |
- Your proposal of not caring about it and introducing useless bloat |
33 |
is wrong. |
34 |
|
35 |
> > > > Your argumentation is basically 'Other parts are doing it wrong |
36 |
> > > > so it's ok to add some more to it'... We're back a dozen emails |
37 |
> > > > back, aren't we? |
38 |
> > > |
39 |
> > > It's not adding more to it. It's avoiding eliminating a tiny |
40 |
> > > portion of it. Even if you subscribe to the notion that |
41 |
> > > unnecessary rebuilds are a relevant problem, there's no point in |
42 |
> > > caring about the occasional unnecessary rebuild due to overly |
43 |
> > > strict dependencies when most unnecessary rebuilds are caused by |
44 |
> > > something else entirely. |
45 |
> > |
46 |
> > And here we go again... |
47 |
> |
48 |
> You've still not justified spending a massive amount of effort on |
49 |
> addressing a tiny fraction of unnecessary recompiles. What makes this |
50 |
> supposed problem in any way relevant? Why should we spend time |
51 |
> reducing 1% of the cost by 1%? |
52 |
|
53 |
You've still not done a serious analysis to back up these numbers. |
54 |
|
55 |
I'm pretty much convinced wrongly used subslot operators are now |
56 |
more than 50% of unnecessary recompile times. Feel free to prove me |
57 |
wrong, but you won't convince me by keeping repeating 'a tiny fraction |
58 |
of unnecessary recompiles'. |
59 |
|
60 |
Proper subslot operators is a one-time investment, reducing unnecessary |
61 |
compiles on the other parts likely require a constant investment over |
62 |
time, so in the long term, whatever the cost is, it is worth it. |
63 |
|
64 |
|
65 |
> > > > It was meant as an example and has nothing to do with dependency |
66 |
> > > > resolution. The above exercise is something extreme but that we |
67 |
> > > > have to solve; preserve-libs has proven to be correct enough. |
68 |
> > > > You have yet to show a correct, in your sense, solution. |
69 |
> > > |
70 |
> > > The correct solution is heavy slotting. And I'd hardly consider |
71 |
> > > "intermittently introduces invisible security holes and causes |
72 |
> > > unbootable systems" to be "correct enough"... |
73 |
> > |
74 |
> > There is no difference between heavy slotting and preserve-libs in |
75 |
> > this case. |
76 |
> |
77 |
> Yes there is: heavy slotting is only dependent upon a careful |
78 |
> developer, whereas preserve-libs relies upon voodoo that can go |
79 |
> horribly wrong. |
80 |
|
81 |
And also has the big advantage of providing an ancient outdated library |
82 |
in its proper slot so that it might be kept indefinitely. |