[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: |
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
Re: [bug #13976] Regression in :: deps handling between V3.76 and V3.80, Paul D. Smith, 2005/08/05