bug-make
[Top][All Lists]
Advanced

[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: Fri, 5 Aug 2005 09:30:44 +0000 (UTC)
User-agent: nn/6.6.5+RFC1522

"Paul D. Smith" <address@hidden> writes:

>   rm> I'll admit that the processing of :: targets is a gray area, and
>   rm> the .WAIT approach is the clearest solution.
>
> Well, clear_ER_ anyway.

There was a discussion on the idea of .WAIT some time ago on the help-make
mailing list (Subject: "How to restrict parallelism in make"). Here are
some thoughts from my reply, which, I think, are still valid:

Alexey Neyman <address@hidden> writes:

> There, the special '.WAIT' target when listed as a dependency, acts as
> a "serializer": all dependencies _before_ it in the list are finished
> before any of those _after_ .WAIT are even started to be updated.
> With this, the above requirements could be supported easily:
>
> <<<<
> all: all-subdir .WAIT all-local
> install: install-subdir .WAIT install-local
> >>>>

What happens if I have this makefile:

foo: bar .WAIT baz
fox: bar baz

When I say 'make fox' is serialization still there? If the answer is 'no',
then how about this makefile:

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

Is it still going to work as user expects (whatever that might mean, I
personally don't know what one should expect here).

I think the answer is 'yes' (or should be 'yes'). If so then it strikes
as terribly asymmetric hack. What happens in this case:

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

Or here:

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

IMO, the proper mechanism for something like this (which, I think, is
not necessary, as stated above) would be to further relax order-only
prerequisites model by removing the requirement of actually building
such prerequisites (aka, "truly" order-only ;-)).

hth,
-boris





reply via email to

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