On pon, 2017-03-20 at 21:12 -0400, Mike Frysinger wrote:
> On 20 Mar 2017 20:35, Michał Górny wrote:
> > Remove the parallel econf logic that adds a lot of complexity for minor
> > gain. It results in the output from different configure scripts being
> > mixed in the build log, making it unreadable. It causes econf to be run
> > in a subshell which is a PMS violation and can cause issues with some of
> > package manager implementations.  Furthermore, the multijob parallel
> > processes are interleaved with multilib-build logic which is unsupported
> > and a very bad idea.
> 
> NAK.  you still haven't backed up your claims wrt to PMS, and this slows
> things down significantly.

You have found the appropriate PMS bit yourself, and chose to ignore it.
What can I do about that? How am I going to convince you that '*not*
guaranteed to work correctly if called from a subshell environment'
means you're not supposed to do that? If I submit a PMS patch changing
the wording to state the obvious you're going to accuse me once again of
changing PMS wording to target you.

Furthermore, I have linked an *explicit Portage bug* causing breakage
with your code. However, you've presumed that it's fine as long as
it will soon be fixed in the git version of Portage.

Finally, I should point out that PMS was *not* written with parallel
execution in mind. It was not deemed useful. It states no requirements
on parallel run guarantees, and so you can't expect package managers to
implement those commands in parallel-friendly way. It's bigger than you.

How about we turn things around, and start expecting maintainers to
justify their non-standard solutions instead? Please tell me, do you
think every other Gentoo developer is wrong not to do parallel econf? Do
you think I was stupid that I've removed that can of worms out of
multibuild?

Could you back your 'significant slow down' claim with any data? Here's
my results, MAKEOPTS=-j3 USE='cxx debug threads tinfo unicode'
ABI_X86='32 64', warm cache. The whole build takes around 25 minutes,
the configure phase (as measures by 'ebuild ... prepare; time ebuild ...
configure':

parallel: 2m35s

serial: 3m47s

We can dispute whether 1 minute gain out of 25 is meaningful. But
instead, I'd like to propose a better solution -- to use --cache-file=
to avoid redoing the same checks in subsequent runs.

cached: 2m24s

...which proves it's faster than the parallel solution, and has
the major advantage of saving both CPU and wall clock time. Any reason
not do that? A patch will follow.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to