[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bug #13976] Regression in :: deps handling between V3.76 and V3.80
From: |
Paul D. Smith |
Subject: |
Re: [bug #13976] Regression in :: deps handling between V3.76 and V3.80 |
Date: |
Wed, 10 Aug 2005 10:04:30 -0400 |
%% Boris Kolpackov <address@hidden> writes:
bk> Yes it does. It's not clear to me whether it's good or bad, though.
bk> I don't see how "result depends on how we got here" type of logic
bk> is of any usefulness especially in the context of make (read "build
bk> reproducibility").
bk> In this particular case, consider the following makefile:
bk> all: foo fox
bk> foo: bar .WAIT baz
bk> fox: baz
bk> Isn't it according to your logic that execution of command scripts
bk> for both 'bar' and 'baz' can start simultaneously? One is via
bk> all->foo->bar chain and the other is via all->fox->baz.
Exactly correct. In fact I think I used this precise example in one of
my earlier posts :-).
I don't see a better-defined alternative though, that still provides the
same behavior (a serialization that doesn't require every target to list
every prerequisite).
This doesn't bother me that much. After all, alternatives (such as you
suggested) are no less error-prone and have even more potential
problems: they rely on the user defining a dependency relationship for
every single target and if you miss one you'll have the same issue.
bk> That's why I also think that inheritance of
bk> pattern/target-specific variables, the way it is implemented now,
bk> is of limited use.
Yes, it is of limited use. However, what are the alternatives? One is
that a target inherits from all its potential parents: then we'd have to
define an order of inheritance, and we'd have to implement it... which
would be really extremely difficult I believe.
Or, we could do away with inheritance altogether. This is something to
consider, as it can potentially be a problem if both the target and its
and parent use the same variables. On the other hand, the current
behavior is what other versions of make do, and it is _marginally_
useful (mainly in the "debug" rule case). On the gripping hand, the
kinds of things inheritance is used for could be done using other
features of GNU make.
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> Find some GNU make tips at:
http://www.gnu.org http://make.paulandlesley.org
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
Re: [bug #13976] Regression in :: deps handling between V3.76 and V3.80, Paul D. Smith, 2005/08/05