[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: Boris Kolpackov
Subject: Re: [bug #13976] Regression in :: deps handling between V3.76 and V3.80
Date: Wed, 10 Aug 2005 11:34:11 +0200
User-agent: Mutt/1.5.6+20040907i


Paul D. Smith <address@hidden> writes:

> I disagree, actually.  It's a settled feature of make that the DAG is
> not a simple tree: that there can be more than one pathway to a given
> target in the DAG.
> The placement of the .WAIT prerequisite implies a relationship between
> two prerequisites of a given target; I don't think it's odd to assume
> that it does not imply anything about any other relationship between those
> same files, as targets or prerequisites.
> Look at it this way: envision the DAG.  I would say that .WAIT is a
> block on one of the edges between two nodes in the DAG.  If that same
> node can be accessed through other edges, then that's fine: the .WAIT
> block doesn't apply to those.
> Make sense?  Or still no?

Yes it does. It's not clear to me whether it's good or bad, though.
I don't see how "result depends on how we got here" type of logic
is of any usefulness especially in the context of make (read "build
reproducibility"). That's why I also think that inheritance of
pattern/target-specific variables, the way it is implemented now, is
of limited use.

In this particular case, consider the following makefile:

all: foo fox
foo: bar .WAIT baz
fox: baz

Isn't it according to your logic that execution of command scripts for
both 'bar' and 'baz' can start simultaneously? One is via all->foo->bar
chain and the other is via all->fox->baz.


Attachment: signature.asc
Description: Digital signature

reply via email to

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