[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: possible solution for -Otarget recurse (was: Re: Some serious issues

From: Eli Zaretskii
Subject: Re: possible solution for -Otarget recurse (was: Re: Some serious issues with the new -O option)
Date: Sat, 04 May 2013 10:13:55 +0300

> From: Paul Smith <address@hidden>
> Cc: address@hidden, address@hidden
> Date: Fri, 03 May 2013 17:17:44 -0400
> -O in no way changes that behavior, all it does is ensure that output
> from any individual line or target of the recipe will not interfere with
> any other individual line or target.

At the Make's internals level, -O indeed doesn't change that behavior.
But, whether we want it or not, Make users perceive the order in which
they see the output as the order in which things got executed.  So any
significant changes in the order we show the results of remaking a
target will, or at least might, be interpreted as changes in behavior.
While it is OK for a non-default switch to change behavior, the
modified behavior must make sense, or users will complain.  For the
default behavior, it must make a lot of sense.

Without -O, output might be messy at times, but there's never any
doubt in user's mind what happened: she understands that the jobs
whose output appears on the screen at the same time run in parallel.
Add -O (in its current implementation), and the user now stares at a
puzzle: output appears serialized, but the order of that serialization
is hard to make sense of.  I'm not even sure I understand completely
what confuses me when I look at such output.  Perhaps my mind tries to
interpret that as a non-parallel run, where a prerequisite target is
always remade before the target that's dependent on that
prerequisite.  Or maybe some other mental mechanism is at work here.
All I can say is that the order in which -O shows output confuses the
heck out of me, and I need to look at it for a long time, reading and
re-reading its portions, before I can convince myself that everything
that needed to be remade was indeed remade, and in correct order.

I guess that means I will seldom if ever use -O.  And if that doesn't
bother anyone, then let's just leave it at that.  Either I'm an odd
one out, or you will hear from others who might explain this better
than I could.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]