[Top][All Lists]

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

Re: Prioritizing non-dependent targets in parallel make

From: tom honermann
Subject: Re: Prioritizing non-dependent targets in parallel make
Date: Mon, 28 Dec 2009 14:40:09 -0800
User-agent: Thunderbird (Windows/20090812)

On 12/24/2009 2:37 AM, Tim Murphy wrote:
Personally I don't like the idea of priorities very much.  Large
builds that I have done do have big targets but since we are building
5000 of the same kind of target (using a macro to define a generic
template and $eval to instantiate it for each specific target) it
becomes impossible for us to provide hints.  In the end we'd have to
force the users of our build system say  "webkit.dll" is pretty huge
or  "euser.dll" isn't.  Since this is all relative information, how
can we expect a build made up of components that various people
produce to have the right "relative" weights?
For specifying priorities for targets built by pattern rules, something like the following could
potentially be supported:

   %.DoMyThing: %.DirectoryOfUnpredictableSize
   priority -5 largedir.DoMyThing
   priority 5 smalldir.DoMyThing

Thus, you could do some optimization in this case. I agree managing 5000 targets in such a way is not realistic, but specifying just a few could still impact build times favorably. This is actually one case where a learning system may not be desired - since it would (probably)
have to evaluate all 5000 targets.
So I, personally, want something that learns.  I would like to be able
to store the learned information into source control and use it as the
basis for the next attempt.  One would have to check for patents on
this, I think.
Something that learns would definitely be nice. Note that the syntaxes I proposed would be amenable to a learning system - the learning system could produce make files with these rules which could be included by other make files. This is similar to what is often done with build
time generated dependencies.


reply via email to

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