1 |
On pon, 2017-03-20 at 21:12 -0400, Mike Frysinger wrote: |
2 |
> On 20 Mar 2017 20:35, Michał Górny wrote: |
3 |
> > Remove the parallel econf logic that adds a lot of complexity for minor |
4 |
> > gain. It results in the output from different configure scripts being |
5 |
> > mixed in the build log, making it unreadable. It causes econf to be run |
6 |
> > in a subshell which is a PMS violation and can cause issues with some of |
7 |
> > package manager implementations. Furthermore, the multijob parallel |
8 |
> > processes are interleaved with multilib-build logic which is unsupported |
9 |
> > and a very bad idea. |
10 |
> |
11 |
> NAK. you still haven't backed up your claims wrt to PMS, and this slows |
12 |
> things down significantly. |
13 |
|
14 |
You have found the appropriate PMS bit yourself, and chose to ignore it. |
15 |
What can I do about that? How am I going to convince you that '*not* |
16 |
guaranteed to work correctly if called from a subshell environment' |
17 |
means you're not supposed to do that? If I submit a PMS patch changing |
18 |
the wording to state the obvious you're going to accuse me once again of |
19 |
changing PMS wording to target you. |
20 |
|
21 |
Furthermore, I have linked an *explicit Portage bug* causing breakage |
22 |
with your code. However, you've presumed that it's fine as long as |
23 |
it will soon be fixed in the git version of Portage. |
24 |
|
25 |
Finally, I should point out that PMS was *not* written with parallel |
26 |
execution in mind. It was not deemed useful. It states no requirements |
27 |
on parallel run guarantees, and so you can't expect package managers to |
28 |
implement those commands in parallel-friendly way. It's bigger than you. |
29 |
|
30 |
How about we turn things around, and start expecting maintainers to |
31 |
justify their non-standard solutions instead? Please tell me, do you |
32 |
think every other Gentoo developer is wrong not to do parallel econf? Do |
33 |
you think I was stupid that I've removed that can of worms out of |
34 |
multibuild? |
35 |
|
36 |
Could you back your 'significant slow down' claim with any data? Here's |
37 |
my results, MAKEOPTS=-j3 USE='cxx debug threads tinfo unicode' |
38 |
ABI_X86='32 64', warm cache. The whole build takes around 25 minutes, |
39 |
the configure phase (as measures by 'ebuild ... prepare; time ebuild ... |
40 |
configure': |
41 |
|
42 |
parallel: 2m35s |
43 |
|
44 |
serial: 3m47s |
45 |
|
46 |
We can dispute whether 1 minute gain out of 25 is meaningful. But |
47 |
instead, I'd like to propose a better solution -- to use --cache-file= |
48 |
to avoid redoing the same checks in subsequent runs. |
49 |
|
50 |
cached: 2m24s |
51 |
|
52 |
...which proves it's faster than the parallel solution, and has |
53 |
the major advantage of saving both CPU and wall clock time. Any reason |
54 |
not do that? A patch will follow. |
55 |
|
56 |
-- |
57 |
Best regards, |
58 |
Michał Górny |